阻止javascript在页面加载时执行并从ASP.NET代码隐藏执行

时间:2015-12-04 16:04:05

标签: javascript jquery asp.net

首先;我正在尝试在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" );
                }
            }
        });
    });

唯一的区别是第一个缺少功能命名。 那么,任何人都可以指出我正确的方向,如何制作一个我可以从代码隐藏调用的脚本,它不会在页面加载时执行吗?

2 个答案:

答案 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);
}