8

クライアント側スクリプトとサーバー側スクリプトの違いを理解しています。私の中にjavascript関数と変数がありますMasterPage

<script language="JavaScript" type="text/javascript">
    var needToConfirm = false;
          window.onbeforeunload = confirmExit;
          function confirmExit()
          {
            if (needToConfirm)
            {
              needToConfirm = false;
              return "Currently in edit mode. If you leave the page now then you will lose unsaved changes."
            }
          }
</script>

ASP.NET (クライアント側) でneedToConfirm変数の値を変更できるという事実を考えると、true onClientClickデフォルトでは false です。これが例です。

 <asp:Button ID="btnEdit" runat="server" Text="  Edit  " onclick="btnEdit_Click" OnClientClick="needToConfirm = true;" />

ここでの質問は、C# (サーバー側) でneedToConfirmを true に設定する必要があるif-statementが、必ずしも on であるとは限らない場合Page_Loadです。

private void SetDefault()

    if (Session[def.ID_CUST] != null)
    {
          //I want to change the variable value here
    }
}

ありがとう。

アップデート

.NET 2.0 Classic と WebForms を使用しています

4

6 に答える 6

8

コードビハインド:

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "urFunction('urValHere');", true);

クライアント側:

function urFunction(urParam) {
        //do what u want here
        //use urParam
    }
于 2013-05-10T03:29:31.773 に答える
8

true非表示の入力を使用して、falseサーバー側との間でこの入力を設定できます。

クライアント側:

<input type="hidden" id="hdnConfirm" runat="server" value="false"/>

次に、サーバー側で:

 if (Session[def.ID_CUST] != null)
    {
          //I want to change the variable value here
           hdnConfirm.Value = "true";
    }

次に、クライアント側で:

var needToConfirm = $('#hdnConfirm').val();
于 2013-05-10T03:21:55.973 に答える
2

私がこれを正しく理解していれば、http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspxの例のようにクライアント スクリプトを登録できます。

ClientScriptManager cs = Page.ClientScript;
if (!cs.IsStartupScriptRegistered(this.GetType(), "EditMode")) {
    cs.RegisterStartupScript(this.GetType(), "EditMode", "needToConfirm = true;", true);
}

needToConfirmこれは、Javascriptの値を設定するページにスクリプトを書き込みます。

于 2013-05-10T03:27:24.797 に答える
1

参考までに。これは、このようなことを行うための 4.5 の方法です。

 // Define the name and type of the client scripts on the page.
 const String csname1 = "MyScriptName";
 Type cstype = this.GetType();

 // Get a ClientScriptManager reference from the Page class.
 ClientScriptManager cs = Page.ClientScript;

 // Check to see if the startup script is already registered.
 if (!cs.IsStartupScriptRegistered(cstype, csname1))
 {
      StringBuilder cstext1 = new StringBuilder();
      cstext1.Append("<script> var myVariable = true; </");
      cstext1.Append("script>");

      cs.RegisterStartupScript(cstype, csname1, cstext1.ToString());
  }

http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerstartupscript(v=vs.110).aspx

于 2014-03-11T18:07:40.250 に答える
1

.NET 2.0 であるという更新に基づいて、これは javascript 変数を設定する方法です。

Page.RegisterStartupScript("SetVar", "var needToConfirm = true;");

http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerstartupscript(v=vs.80).aspx

于 2013-05-10T03:31:25.510 に答える