我注册Java脚本,以隐藏文件我的Asp.net代码,这是工作的罚款。 现在,我在同一页上的一些更新面板和问题是每当有任何更新面板中的任何改变,该脚本会自动获取调用。 有没有什么办法,我可以阻止这种情况的发生。 我无法从我的网页删除更新面板,这个脚本也是应用的一个非常重要的组成部分。 在这种情况下我打电话时,保存按钮被点击或当我有一些其他的按钮更新面板和一个更新程序被称为警报(已设定的超时功能弧度警报)whenver任何被注册到更新按钮面板点击下面的脚本被称为非心甘情愿。 任何人的帮助,才会真正理解。
以下是我的Page.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>
非常感谢您的回答阿迪尔。 我已经跟着差别不大相同的方法。 我从隐藏文件我的代码采取的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);
}
}
在这里,我在一个隐藏的输入字段从代码中设置我的警报信息隐藏文件,并在上面的事件处理程序,我只是检查,如果消息是还有比重置隐藏字段,并显示信息。 你的做法也是正确的,我已经打上你的答案,但因为我从多个位置显示我的消息(保存按钮,更新程序等),通过指定值来隐藏输入字段,比事件处理上述重置在看起来比较合适。 再次感谢您的帮助。