在jQuery对话框中单击控件时,如何进行asp.net页面回发?

在jQuery对话框中单击控件时,如何进行asp.net页面回发?,jquery,asp.net,jquery-ui,Jquery,Asp.net,Jquery Ui,我在jQueryUI方面遇到了一些问题。我已经用jqueryui创建了一个对话框:到目前为止,一切都很好。我在jQueryUI对话框中设置了一个表单,然后这是另一个故事。我写了一个非常简单的页面来说明: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testpage.aspx.cs" Inherits="RiverCascade.testpage" %> <head runat="server">

我在jQueryUI方面遇到了一些问题。我已经用jqueryui创建了一个对话框:到目前为止,一切都很好。我在jQueryUI对话框中设置了一个表单,然后这是另一个故事。我写了一个非常简单的页面来说明:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testpage.aspx.cs"     Inherits="RiverCascade.testpage" %>
<head runat="server">    
<link rel="Stylesheet" type="text/css" href="Stylesheet1.css" />
<link rel="Stylesheet" type="text/css" href="css/smoothness/jquery-ui-1.8.5.custom.css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js"></script>
<script type="text/javascript">
function showModal() {
    $("#modalBox").dialog();
}
$(document).ready(showModal);    
</script>
</head>
<body>
<form id="form1" runat="server">
    <div>    
    <asp:Button runat="server" ID="button1" OnClick="button1_click" />                
        <div style="display:none" id="modalBox">
        <asp:Button runat="server" ID="button2" OnClick="button2_click" />        
        </div>

    </div>
    </form>
</body>
</html>

函数showmodel(){
$(“#modalBox”).dialog();
}
$(文档).ready(showmodel);
在上面的代码中,我刚刚导入了jQuery、jQuery UI和样式表,并设置了一个带有对话框的页面。对话框外部有一个asp控件按钮1,对话框内部有一个asp控件按钮2

当我点击按钮1时,事件处理程序被调用,一切正常。但是,当单击jQuery对话框中的按钮2时,什么也没有发生


为什么我的网页会出现这种情况?如何修复它?

以下是来自jQueryUI对话框的内容(您必须向下滚动很远)

/。。。更多代码在这里。。。
uiDialog=(self.uiDialog=$(“”))
.appendTo(document.body)
.hide()
.addClass(UIDialogClass+选项.dialogClass)
// ... 更多代码在这里。。。
基本上,您之所以看到这样的行为,是因为jQuery对话框创建了一个新元素并将其附加到页面的
主体上(ASP.NET表单之外)。由于您的按钮现在位于ASP.NET表单之外,因此不会导致定期提交


蒂姆·詹姆斯的解决方案应该掩盖这个问题

以下内容来自jqueryui对话框(您必须向下滚动很长一段时间)

/。。。更多代码在这里。。。
uiDialog=(self.uiDialog=$(“”))
.appendTo(document.body)
.hide()
.addClass(UIDialogClass+选项.dialogClass)
// ... 更多代码在这里。。。
基本上,您之所以看到这样的行为,是因为jQuery对话框创建了一个新元素并将其附加到页面的
主体上(ASP.NET表单之外)。由于您的按钮现在位于ASP.NET表单之外,因此不会导致定期提交


蒂姆·詹姆斯的解决方案应该掩盖这个问题

尝试将此添加到按钮2

UseSubmitBehavior="false"

尝试将此添加到按钮2

UseSubmitBehavior="false"

+1:谢谢你的帮助。但是,一旦按钮正常工作,我会在对话框中添加一些文本框。你猜怎么着?当我提交表格时,它们都是空白的?那么呢?@米粉饼干:同样的原因,提交表单时,这些文本框不在表单标签内。由于它们不在表单中,因此不会提交它们的数据。很多人都有问题。很抱歉,我帮不上更多忙,我已经有一段时间没有处理过这个问题了,也不记得最好的解决方案是什么。要解决文本框问题,我会在对话框外创建一组全新的文本框,但将其隐藏。然后,当您填写对话框中的文本框时,它会将值推送到其他文本框中。当提交表单时,它将具有您可以获得的值。@Tim B James:这是一种方法,我可能会采用这种方法,让jQuery UI将对话框附加到表单而不是正文。啊,这是一个很好的解决方案!:)+1:谢谢你的帮助。但是,一旦按钮正常工作,我会在对话框中添加一些文本框。你猜怎么着?当我提交表格时,它们都是空白的?那么呢?@米粉饼干:同样的原因,提交表单时,这些文本框不在表单标签内。由于它们不在表单中,因此不会提交它们的数据。很多人都有问题。很抱歉,我帮不上更多忙,我已经有一段时间没有处理过这个问题了,也不记得最好的解决方案是什么。要解决文本框问题,我会在对话框外创建一组全新的文本框,但将其隐藏。然后,当您填写对话框中的文本框时,它会将值推送到其他文本框中。当提交表单时,它将具有您可以获得的值。@Tim B James:这是一种方法,我可能会采用这种方法,让jQuery UI将对话框附加到表单而不是正文。啊,这是一个很好的解决方案!:)哈哈哈,有一个“沮丧”的标签吗?黄金。:)哈哈哈,有一个“沮丧”的标签吗?黄金。:)上帝啊!!!这是迄今为止最简单的方法!!!!我一整天都在绕着这个问题转++100提姆(p/s:我对JQuery很陌生)上帝啊!!!这是迄今为止最简单的方法!!!!我一整天都在绕着这个问题转++100蒂姆(p/s:我对JQuery非常陌生)