我使用嵌套的 GridView,基于以下示例
打开模态表单后,所有打开的项目都会关闭。我知道这是关于 AutoPostBack 的,我因为其他原因无法将其关闭...
我想寻求帮助
VB 背后的代码
Me.ClientScript.RegisterStartupScript(Form.GetType(), "Show", "ShowModalForm('" & "myModal" & "', '" & "Title" & "', '" & "Message" & "');", True)
HTML
<script type="text/javascript">
function ShowModalForm(NamePopup, title, message) {
$("#myModal .data-toggle").html("modal");
$("#myModal .data-target").html("#myModal");
$("#" + NamePopup).modal("show");
}
</script>
<script type="text/javascript">
$("body").on("click", "[src*=plus-square]", function () {
$("[src*=dash-square]").each(function () {
$(this).trigger('click');
});
$(this).closest("tr").after("<tr><td></td><td colspan ='999'>" + $(this).next().html() + "</td></tr>")
$(this).attr("src", "src/dash-square.svg");
});
$("body").on("click", "[src*=dash-square]", function () {
$(this).attr("src", "src/plus-square.svg");
$(this).closest("tr").next().remove();
});
</script>
<asp:GridView
ID="myDataTable"
DataKeyNames="DOWO_ID"
runat="server"
OnRowDataBound="myDataTable_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<img alt="" style="cursor: pointer" src="src/plus-square.svg" />
<asp:Panel ID="pnlOrders" runat="server" Style="display: none;">
<asp:GridView
ID="myOrders"
DataKeyNames="DOWOI_ID"
runat="server">
<Columns>
<asp:BoundField DataField="DOWOI_ID" HeaderText="ID" />
<asp:BoundField DataField="DOWO_ID" HeaderText="ID Items" />
<asp:TemplateField ItemStyle-VerticalAlign="Middle">
<ItemTemplate>
<asp:LinkButton ID="lnkEdit" runat="server" OnClick="Display">Otvori</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DOWO_ID" HeaderText="ID" SortExpression="DOWO_ID" />
<asp:BoundField DataField="DOWO_BarCode" HeaderText="Barcode" SortExpression="DOWO_BarCode" />
<asp:BoundField DataField="DOWO_Order" HeaderText="BN" SortExpression="DOWO_Order" />
</Columns>
</asp:GridView>
<div id="myModal" class="modal fade" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
....
</div>
</div>
</div>
我尝试在嵌套网格前面插入一个 UpdatePanel,但无济于事,模态表单调用根本不起作用。我还尝试在模式窗体打开时在后面的代码中显示并保持面板打开,但再次无济于事。我相信使用 UpdatePanel 或通过 jquery 有一个解决方案,但我不知道如何...
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView>
...
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="myOrders" />
</Triggers>
</asp:UpdatePanel>