如何注销页面.c# Asp.net中的ClientScript
本文关键字:Asp net 中的 ClientScript 何注销 注销 | 更新日期: 2023-09-27 17:53:07
我正在注册java脚本到我的Asp.net代码后面的文件,这是工作良好。现在,我在同一页面上有一些更新面板,问题是每当更新面板中有任何更改时,这个脚本就会自动被调用。我有什么办法能阻止这一切发生吗。我不能从我的页面上删除更新面板,这个脚本也是应用程序的一个非常重要的部分。在这种情况下,我只是调用一个警报(rad警报设置超时功能),当保存按钮被点击或更新例程被调用,而我在更新面板中有几个其他按钮,每当任何按钮注册到更新面板点击,下面的脚本被不情愿地调用。任何人的帮助都会非常感激。
下面是我的页面。ClientScript
string radalertscript = "<script language='javascript'> Sys.Application.add_load(function(sender, e) {var oWnd = radalert('dialogMessage', 400, 140, 'Saved');window.setTimeout(function () { oWnd.Close(); }, 3000);});</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
您可以为相同的键radalert
分配空字符串以删除脚本。
if(some_condition)
Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", "");
编辑:根据注释,您可以使它变得简单,而不使用RegisterStartupScript
btnSave.Attributes.Add("", "saveButtonFunction();");
在Javascript <script language='javascript'>
Sys.Application.add_load(function(sender, e) {
if(btnSaveClicked){
var oWnd = radalert('dialogMessage', 400,140, 'Saved');
window.setTimeout(function () { oWnd.Close(); }, 3000);
btnSaveClicked = false;
}
});
btnSaveClicked = false;
function saveButtonFunction(){
btnSaveClicked = true;
};
</script>
Adil,非常感谢您的回答。我已经遵循了相同的方法,几乎没有什么不同。我已经把JavaScript从我的代码后面的文件,并注册了Sys.Application。Add_load事件如下
Sys.Application.add_load(DisplayRadAlertHandler);
function DisplayRadAlertHandler() {
var getMessage = document.getElementById('<%=radAlertDialogHidden.ClientID%>').value;
if (getMessage != "") {
document.getElementById('<%=radAlertDialogHidden.ClientID%>').value = "";
var oWnd = radalert(getMessage, 400, 140, 'Saved');
window.setTimeout(function () { oWnd.Close(); }, 3000);
}
}
在这里,我将警报消息设置在隐藏的输入字段中,从代码后面的文件中,在上面的事件处理程序中,我只是检查消息是否存在,而不是重置隐藏字段并显示消息。你的方法也是正确的,我已经标记了你的答案,但当我从多个位置(保存按钮,更新例程等)显示我的消息时,通过将值分配给隐藏的输入字段,而不是在上面的事件处理程序中重置看起来更合适。再次感谢您的帮助。