ASP.NET按钮在使用JQuery模态对话框时无法触发点击事件

6

我有一个div,它被展示为模态对话框。

<div id="div2" style="display: none;" title="Upload Prenda">
        <center>
            <br />
            Select File to Upload:
            <asp:FileUpload ID="PrendaFileUpload" runat="server" Width="345px" />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="PrendaFileUpload"
                ErrorMessage="File to be uploaded Required" ValidationGroup="X">*</asp:RequiredFieldValidator><br />
            <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True"
                ShowSummary="False" ValidationGroup="X" />
            <br />
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
            <asp:Button ID="uploadButton" runat="server" Text="Upload" OnClick="uploadButton_Click"
                 Width="100px" />
        </center>
    </div>

这是jQuery实现的代码:
 <script type="text/javascript">
$(function() {
$( "#div2" ).dialog({
autoOpen: false,
modal:true,
resizable: false,
 height: 200,
width: 600
});
$( "#toggle" ).click(function() {
$( "#div2" ).dialog( "open" );
});
});
</script> 

问题出在我按下按钮激活OnClick="uploadButton_Click"后,方法内部并没有运行,请问有任何解决办法吗?抱歉,我刚接触jquery。


1
我认为你会发现问题在于jQuery对话框是以一种方式完成的,这种方式将它们从普通的ASP.NET表单标签中移除。大约一年前我遇到了这个问题,但我不记得我当时做了什么或者在哪里找到了答案。我相信答案就在这个网站上。如果我能找到它,我会更新并附上答案的链接。有一个相当简单的解决方法,只是有点难找。 - Tyler Durden
4个回答

15

好的,这是对我有效的答案,我没有使用任何更新面板,这是我使用的方法

将此添加到对话框声明中:

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

我在这里找到了答案,如果你想了解更多,请点击旁边的链接:)


3
新版本的JQueryUI使用稍微不同的约定。在您的.dialog()声明中,添加以下参数:
appendTo: "form",

这将解决新版本JQuery的问题,因为它在ASP.NET表单范围之外构建对话框。希望这能帮助新用户!

1

@TylerDurden 上面的解决方案对我没有用,我正在使用1.8 jQuery UI。 - Albert Laure
@user2705620 抱歉,我刚刚才收到这条评论的通知。我假设您现在已经解决了这个问题?;) - Tyler Durden

1

这个查询将会从JQuery中触发C#代码。我已经测试过了:

 $(this).parent().appendTo($("form:first"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接