首先;我正在尝试在ASP.NET / JavaScript代码中做两件事。
1)从ASP.NET代码隐藏中打开一个jQuery对话框。 (仅在javascript也在启动时执行时才有效)
2)停止与1)中提到的相同的javascript / jQuery对话框,以显示每个页面加载。
所以下面的代码效果很好,但是在我尝试停止的页面加载上执行。另外,如果我正确地理解了How can I prevent this jQuery function from being executed on every page load?,这种格式(没有函数名称)将不允许我从代码隐藏中调用函数:
$(function() {
$( "#dialogConfirm" ).dialog({
resizable: false,
height:180,
width: 500,
modal: true,
buttons: {
"Delete": function() {
$( this ).dialog( "close" );
},
"Cancel": function() {
$( this ).dialog( "close" );
}
}
});
});
这不起作用(只显示页面上的div而不是jQuery对话框):
$(function showConfirmDialog() {
$( "#dialogConfirm" ).dialog({
resizable: false,
height:180,
width: 500,
modal: true,
buttons: {
"Delete": function() {
$( this ).dialog( "close" );
},
"Cancel": function() {
$( this ).dialog( "close" );
}
}
});
});
唯一的区别是第一个缺少功能命名。 那么,任何人都可以指出我正确的方向,如何制作一个我可以从代码隐藏调用的脚本,它不会在页面加载时执行吗?
答案 0 :(得分:1)
添加一个名称为" showDialog"的函数。在你的aspx页面中。
function showDialog(){
$( "#dialogConfirm" ).dialog({
resizable: false,
height:180,
width: 500,
modal: true,
buttons: {
"Delete": function() {
$( this ).dialog( "close" );
},
"Cancel": function() {
$( this ).dialog( "close" );
}
}
});
}
然后使用函数名称从代码隐藏中调用它:
ScriptManager.RegisterStartupScript(this, typeof(Page), "", "showDialog", true);
答案 1 :(得分:0)
将您的js功能更改为:
function ShowDialog() {
$( "#dialogConfirm" ).dialog({
resizable: false,
height:180,
width: 500,
modal: true,
buttons: {
"Delete": function() {
$( this ).dialog( "close" );
},
"Cancel": function() {
$( this ).dialog( "close" );
}
}
});
}
然后在.cs文件中,将其放在Page_Load
中if (IsCallback)
{
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:ShowDialog();", true);
}