15

我已经在网上搜索过,并尝试了一些提供的解决方案,但没有一个对我有用。

我在 div 中有一个按钮。我在 jquery 对话框中显示 div。按钮单击在 jquery 对话框中不起作用。

我的代码如下:

aspx

    <div id='one'>
 <asp:LinkButton ID="ConfigureAlerts" OnClick="btnConfigureAlerts_Click" runat="server">Configure Alerts</asp:LinkButton>
</div>
<div id="ViewModalPopupDiv2">
        <asp:UpdatePanel ID="UpdatePanel3" runat="server">
            <ContentTemplate>
            <asp:Panel ID="Panel2" runat="server" HorizontalAlign="left" ScrollBars="Auto">
            <asp:Button ID="btnGetLogs" runat="server" Text="SendAlerts" OnClick="btnSendAlertEmail_Click"/>
            </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>

jQuery

function ViewModelPopup2() {
            $("#ViewModalPopupDiv2").dialog({
                scrollable: true,
                width: 800,
                modal: true
            });
        }

aspx.cs

protected void btnSendAlertEmail_Click(object sender, EventArgs e)
        {

            // Code to send email

        }

protected void btnConfigureAlerts_Click(object sender, EventArgs e)
        {

        ScriptManager.RegisterStartupScript
                       (this, this.GetType(), "callScriptFunction", "ViewModelPopup2();", true);
        }
    }

请让我知道我需要做什么来触发服务器控制事件。

4

2 回答 2

25

我也遇到了 asp.net 按钮和 jQuery UI 对话框的问题。要解决它,您需要在 aspnet 按钮中将标签UseSubmitBehavior设置为false.

如果UseSubmitBehavior属性设置为true(这是默认值),按钮将使用浏览器的提交机制(jQuery Dialog UI 正在操作它),如果UseSubmitBehavior设置为false,则按钮将使用 asp.js 的客户端脚本。 net framework 包括在页面中发布到表单。

所以你的 HTML 应该是这样的:

<div id='one'>
<asp:LinkButton ID="ConfigureAlerts" OnClick="btnConfigureAlerts_Click" runat="server">Configure Alerts</asp:LinkButton>
</div>
<div id="ViewModalPopupDiv2">
        <asp:UpdatePanel ID="UpdatePanel3" runat="server">
            <ContentTemplate>
            <asp:Panel ID="Panel2" runat="server" HorizontalAlign="left" ScrollBars="Auto">
            <asp:Button ID="btnGetLogs" runat="server" Text="SendAlerts" OnClick="btnSendAlertEmail_Click" UseSubmitBehavior="false" />
            </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>

更多详细信息,请访问http://msdn.microsoft.com/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx

于 2013-09-10T21:55:23.007 回答
4

这是经典,感谢您移动我的对话框 jQuery,问题。

jQuery UI 出于某种原因将您的对话框代码移动到 html 标记的底部,在您的表单标记之外。您需要使用更多 jQuery 将对话框移回表单中:

dlg.parent().appendTo(jQuery('form:first'));

其中 dlg 是您的 jQuery.UI 对话框对象。

        var dlg = $("#ViewModalPopupDiv2").dialog({
            scrollable: true,
            width: 800,
            modal: true
        });
        dlg.parent().appendTo(jQuery('form:first'));

这应该让事情再次为你工作。干杯!

如果这不起作用,请尝试在 open 事件中执行此操作:

open: function(type,data) { $(this).parent().appendTo("form"); }

于 2013-09-11T05:47:28.957 回答