0

我被 jquery 模态对话框困住了。我的模式通过单击按钮两次来显示,并且在页面上也破坏了标记我没有阅读包括堆栈溢出的 帖子

还有这个

但我的问题与两者都不匹配。所以我请求你不要投票否决这个问题。

我正在使用以下代码来显示模态

<script type="text/javascript">

        function overlayclickclose() {
            if (closedialog) {
                jQuery('#mydialog').dialog('close');
                             }
            closedialog = 1;
                                    }

            jQuery('#mydialog').dialog({
            bgiframe: true,
            autoOpen: false,
            modal: true,
            width: 900,
            height: 400,
            resizable: false,
            open: function() { closedialog = 1; jQuery(document).bind('click', overlayclickclose); },
            focus: function() { closedialog = 1; },
            close: function() { jQuery(document).unbind('click'); }
            });
            </script> 

现在这是我的 div 显示为弹出窗口

<div id="mydialog"><NL:TemplatePicker ID="TemplatePicker1" Runat="server"></NL:TemplatePicker></div>

我通过像这样在 asp.net 代码中调用它来调用按钮的单击模式

protected void btnChooseTemplate_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterClientScriptBlock(this.Page, Page.GetType(), "change", "jQuery('#mydialog').dialog('open');closedialog = 1;jQuery('#mydialog').parent().appendTo(jQuery('form:aspnetForm'));", true);
    }

我的页面使用 ajax 更新面板。

任何帮助都会被考虑。如果您需要更多信息来了解问题,请告诉我。

谢谢

4

1 回答 1

2

@Devjosh:看起来您正在 btnChooseTemplate 单击中注册打开的对话框。这意味着在第一次单击之后才会注册打开的脚本。尝试将客户端脚本块注册移动到页面加载函数中,以便在每次加载页面时注册它,为每次第一次点击做好准备。

于 2011-05-10T14:28:56.320 回答