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
代码背后:
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)
您可以使用隐藏输入,然后将此输入设置为服务器端true或false从服务器端设置此输入.
在客户端:
<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)