0

コード ビハインドから JavaScript に値 (abc) を渡そうとしましたが、ページが失敗し、読み込まれません。構文に何か問題がありますか?通常、 <%...%> が黄色で強調表示されていることに気付きましたが、私のコードではそうではありません。

<script src="../Scripts/jqModal.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $().ready(function() {    });

    $("a").click(function() {
    if (this.id == "optionalFeatures_Online") {
        var abc = "<%=Variable_codebehind %>";
    }
        });
</script>

コード ビハインド On_Load イベント:

    protected override void OnLoad(EventArgs e)
    {
        Variable_codebehind = "hello world"; 
    }

ログファイルからのエラー:

Web.HttpUnhandledException' がスローされました。---> System.Web.HttpException: コントロールにコード ブロック (つまり <% ... %>) が含まれているため、Controls コレクションを変更できません。

4

3 に答える 3

0

Page.RegisterStartupScriptを使用して、Code-Behindからいくつかの変数を渡すことができます。スクリプトを.jsファイルに配置し、コードビハインドからOnLoadメソッドで呼び出します。

OnLoad CodeBehind:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", String.Format("MyScript({0});", codeBehindVar));

MyScript.js

function MyScript(myVar)
{
   var self = this;
   $("a").click(function() {
   if (this.id == "optionalFeatures_Online") {
      var abc = self.myVar;
   }
}
于 2012-10-01T14:49:26.677 に答える
0
<script src="../Scripts/jqModal.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {    
        $("a").click(function() {
            if (this.id == "optionalFeatures_Online") {
                var abc = <%=Variable_codebehind %>;
            }
        });
    });
</script>

コード ビハインド On_Load イベント:

    protected override void OnLoad(EventArgs e)
    {
        Variable_codebehind = HttpUtility.JavaScriptStringEncode("hello world", true); 
    }
于 2012-10-01T14:24:16.643 に答える
0

最初に非表示のコントロールに値をバインドします

次に、隠しコントロールから値を取得します

于 2012-10-01T14:16:11.587 に答える