1

Javascriptファイルとメソッドを登録する必要があるメソッドがあるaspx.csページがあります。JSファイルとその中のメソッドを登録する方法について誰かが私を案内してもらえますか?

aspx.cs

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
        "TaskControlJSON", "<script language='javascript' 
        type='text/javascript'>" + objLoginJson + "</script>"
        , false);
}

csファイルに登録する必要のあるJavascriptファイル。

function GetLoginJson(strLoginJson) {
    if (strLoginJson != '' && strLoginJson != undefined) {
        var objLoginJson = eval('"+strLoginJson+"');
    }
    if (objLoginJson.LoginSuccess == "1") {

    }
    else if (objLoginJson.LoginSuccess == "0") {

        if (objLoginJson.txtUserName != '' && objLoginJson.txtUserName != '') 
        {
            $('#txtUserName').attr("class", objLoginJson.txtUserName);
        }
        if (objLoginJson.txtPassword != '' && objLoginJson.txtPassword != '') 
        {
            $('#txtPassword').attr("class", objLoginJson.txtPassword);
        }
        if (objLoginJson.txtTestTokenNumber1 != '' 
             && objLoginJson.txtTestTokenNumber1 != '') 
        {
            $('#txtTestTokenNumber1').attr("class"
               , objLoginJson.txtTestTokenNumber1);
        }
        if (objLoginJson.txtTestTokenNumber2 != '' 
             && objLoginJson.txtTestTokenNumber2 != '') 
        {
            $('#txtTestTokenNumber2').attr("class",
               objLoginJson.txtTestTokenNumber2);
        }
        if (objLoginJson.txtTestTokenNumber3 != '' 
            && objLoginJson.txtTestTokenNumber3 != '') 
        {
            $('#txtTestTokenNumber3').attr("class", 
               objLoginJson.txtTestTokenNumber3);
        }
        if (objLoginJson.txtTestTokenNumber4 != '' 
             && objLoginJson.txtTestTokenNumber4 != '') 
        {
            $('#txtTestTokenNumber4').attr("class",
                objLoginJson.txtTestTokenNumber4);
        }
    }
    return objLoginJson;
}

ユーザーが誤ったログイン資格情報を提供した場合、このメソッドはJson文字列を返します。前もって感謝します。

4

2 に答える 2

2

JavaScriptコードのかなり大きなブロックなので、これは別のjsファイルに保存するのが最適です。

ScriptManager.RegisterClientScriptIncludeメソッドを使用して、これを実現できます。

ScriptManager.RegisterClientScriptInclude(
            this,
            typeof(Page),
            "LoginScript",
            ResolveClientUrl("~/scripts/login.js"));

js関数の使い方を指定していないGetLoginJsonので、参考にしてください。あなたのjsファイルは次のようなものでそれを呼び出すことができます:

$(document).ready(function(){
    $("#loginButton").click(function(){
       var strLoginJson = "";//form the string as you need
       GetLoginJson(strLoginJson);
    });
});
于 2012-08-22T05:10:22.093 に答える
0

わかりました。少し調整して、機能するようにしました。

protected void Page_PreRender(object sender, EventArgs e)
{
    if (strLoginJson != string.Empty)
    {
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "LoginControlJSON", "<script language='javascript' type='text/javascript'>GetLoginJson(" + strLoginJson + ");</script>", false);
    }
}
于 2012-08-22T09:41:47.217 に答える