从后面的代码设置javascript变量的值(C#)

Chr*_*ark 7 javascript c# asp.net

我理解客户端和服务器端脚本之间的区别.我有一个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>
Run Code Online (Sandbox Code Playgroud)

鉴于在我的ASP.NET(客户端)上我可以将needToConfirm变量的值更改为true onClientClick但是默认情况下它是false.这是一个例子.

 <asp:Button ID="btnEdit" runat="server" Text="  Edit  " onclick="btnEdit_Click" OnClientClick="needToConfirm = true;" />
Run Code Online (Sandbox Code Playgroud)

现在的问题是,在C#(服务器端)上,我必须needToConfirm在一个if-statement但不一定在下面设置为true Page_Load:

private void SetDefault()

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

谢谢.

UPDATE

我正在使用.NET 2.0 Classic和WebForms

Von*_*itz 8

代码背后:

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "urFunction('urValHere');", true);
Run Code Online (Sandbox Code Playgroud)

在客户端:

function urFunction(urParam) {
        //do what u want here
        //use urParam
    }
Run Code Online (Sandbox Code Playgroud)


Sem*_*glu 5

您可以使用隐藏输入,然后将此输入设置为服务器端truefalse从服务器端设置此输入.

在客户端:

<input type="hidden" id="hdnConfirm" runat="server" value="false"/>
Run Code Online (Sandbox Code Playgroud)

然后在服务器端:

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

然后在客户端:

var needToConfirm = $('#hdnConfirm').val();
Run Code Online (Sandbox Code Playgroud)