質問

これがこの問題のまわりに他の方法があるので、私はこれが大きな取引ではないと思いますが、これが可能であると思ったので、私は答えに関して本当に好奇心が強いです。

私のコードの後ろのコードでブール値を返すパブリックプロパティを持っています。私のJavaScript検証関数でこのサーバー変数にアクセスしたいのですが、これまでのところ、それほど入手しないでください。

Public Property editMode() As Boolean
    Get
        If Cache("editMode") IsNot Nothing Then
            Return (DirectCast(Cache("editMode"), Boolean))
        Else
            Return False
        End If
    End Get
    Set(ByVal value As Boolean)
        Cache("editMode") = value
    End Set
End Property

function validateEdit()
{
    alert("editMode value is " + '<%#editMode()%>');
    if ('<%#editMode()%>'.toString() == "True")
    {
        alert("You are currently in edit mode. Please save or cancel changes.");
        return false;
    }
    return true;
}
.

これに束のバリエーションを試してみましたが、常に偽です。現在のコードで、警告は「editmode valueはfalse」

を返します。

使用したとき:

if ('<%#editMode()%>') ...
.

まだ常にfalseですが、IF状態になりますので、動作は常に真実だったかのようです。

他のもう1つのことは、私が見つけたほとんどのJavaScript / Serverタグのものは <%= editmode%> を使用することを言うが、代わりに=代わりに使用することはできません。 #は例外を取得します:

"コントロールコレクションはできません コントロールに含まれているので変更しました コードブロック(すなわち<%...%>)。 "

だから私は#を使って

を言うことによってこれを解決しました
    Page.Header.DataBind()
    Page.Form.DataBind()
.

ページロードイベントハンドラ

任意のアイデア?前もって感謝します。 :)

(私は通常C#を使っているので、私はVB部門で無意識のうちに行ったことがあるかもしれませんので、それも自由に感じてください)

役に立ちましたか?

解決 2

これは私がエラーを解決するのを助けました。 "コントロールコレクションは変更できません。コントロールにコードブロックが含まれています "

JavaScript機能を頭から移動し、体内に移動すると問題が解決されます。この問題を引き起こす可能性があることがいくつかあるようですが、私の場合、最も可能性の高いCulpritはAjaxToolkitです。

他のヒント

最初に、これに変更してみてください:

<%=editMode()%>
.

それがそれであるかどうかわからないが、それは傷つくことはできません。次に、最初にページをロードしたときに編集モードになっていますか?そのコードはサーバー側を実行して結果をユーザーに返します。

ユーザーのページでは、それらが表示されます。

function validateEdit()
{
    alert("editMode value is " + 'False');
    if ('False'.toString() == "True")
    {
        alert("You are currently in edit mode. Please save or cancel changes.");
        return false;
    }
    return true;
}
.

もう一度、それがそうでないかどうかわからないが、JavaScriptがサーバーへの呼び出しを行わないことを理解することが重要です。

もう一つのこと。

あなたは

を使って文字列を別の文字列に変換していることを認識しています
'<%#editMode()%>'.toString() 
.

右λ

あなたが欲しいものはこれが

だと思います
if ('<% =editMode.toString() %>'= 'True')...
.

またはより良いまだ

if (<% =editMode.toString().ToLower() %>)...
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top