我有一个“testMain.aspx”页面显示一个可编辑的列表视图。另外,它包含一个触发jquery UI模式对话框的按钮,该对话框动态地加载“testModal.aspx”。这种模式包含用户选择的下拉列表,并单击按钮将其提交回服务器。我想要模式提交(到testModal.aspx),然后关闭,所以我正在查看testMain.aspx。动态加载的模式,可以提交到不同的网页比主页
我碰到的是提交&密切模式之后的问题,任何点击(即了LinkButton编辑列表视图)现在提交modal.aspx而非main.aspx。
注:
- testMain.aspx使用母版(其包含的表格元素)
- ListView中被包含在一个asp:UpdatePanel的
- 该问题不会发生,直到我加载(.load())的模式,在此之前,我点击回发到testMain.aspx(预期)
Masterpa ge.master
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head id="Head1" runat="server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<div id="page">
<form id="form1" runat="server">
<table summary="" class="pageTable">
<tr>
<td class="contentArea">
<asp:ContentPlaceHolder ID="ContentPage" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
testMain.aspx
<script type="text/javascript">
$(document).ready(function() {
var $dialog = $('#foo').dialog({
autoOpen: false,
modal: true
});
$("#foo").parent().appendTo($("form:first"));
$('#fooBtn').click(function() {
$dialog.load('testModal.aspx');
$dialog.dialog('open');
return false;
});
});
</script>
<ajax:UpdatePanel runat="server" ID="updPanelGrid" UpdateMode="Conditional" RenderMode="Inline"
ChildrenAsTriggers="false">
<ContentTemplate>
<asp:ListView ID="ListView1" runat="server" EnableModelValidation="True"
...
</asp:ListView>
</ContentTemplate>
<Triggers>
<ajax:AsyncPostBackTrigger ControlID="listview1" EventName="ItemEditing" />
<ajax:AsyncPostBackTrigger ControlID="listview1" EventName="ItemDeleting" />
<ajax:AsyncPostBackTrigger ControlID="listview1" EventName="ItemCanceling" />
<ajax:AsyncPostBackTrigger ControlID="listview1" EventName="ItemUpdating" />
<ajax:AsyncPostBackTrigger ControlID="listview1" EventName="ItemInserting" />
</Triggers>
</ajax:UpdatePanel>
testModal.aspx
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server">
</asp:ToolkitScriptManager>
<div>
<ajax:UpdatePanel ID="updPnl" runat="server">
<ContentTemplate>
<asp:LinkButton ID="btnModalSubmit" runat="server" Text="Modal Server Submit" />
<div>
The current time is:
<%= Now.ToString%></div>
</ContentTemplate>
</ajax:UpdatePanel>
</div>
</form>
它通过了jQuery对话框调用.load()在我看来,它会导致更新面板(即,回传路径)。如何在模态中加载整个.net页面,单击所述模式中的按钮,将其发回到服务器(异步),并且允许我在模式被解除后继续在主页面中工作?
这甚至可能吗?有没有更好的办法?
你也可以发布testModal.aspx代码吗? – Gromer
添加了testModal.aspx标记。注意:代码隐藏中没有任何内容。 – SchickRaptor
您的testModal.aspx中有一个表单元素。 testMain.aspx是否也有该表单元素?任何主页正在使用?我想知道如果您在呈现的页面中多次使用该表单元素,并且这会导致问题。 – Gromer