【发布时间】:2015-11-25 00:47:01
【问题描述】:
我刚开始在我的解决方案中使用更新面板,所以我正在慢慢熟悉它们。我有一个 GridView,它有一个与显示的每一行关联的删除按钮。当我单击删除按钮时,它的 OnClick 事件应显示一个面板,该面板充当半模态确认框(作为灯箱完成)以删除与相关行关联的记录。但是,当我单击该按钮时,该面板不会显示,因为它全部位于更新面板中。没有更新面板也能正常工作
有什么想法吗?
这是我的代码的精简版:
<script runat="server">
Protected Sub LinkButtonDelete_Click(ByVal Sender As Object, ByVal e As EventArgs)
PanelConfirmMessage.Visible = True
PanelConfirmLightBox.Visible = True
End Sub
'.... note there is other code that handles the delete ...
</script>
<html>
<head"></head>
<body>
<form id="form1" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" DataSourceID="DataSourceGridView1">
<Columns>
<asp:templatefield HeaderText="Name">
<ItemTemplate><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("MyFieldName") %>' /></ItemTemplate>
</asp:templatefield>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate><asp:LinkButton ID="LinkButtonDelete" runat="server" OnClick="LinkButtonDelete_Click"></asp:LinkButton></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="DataSourceGridView1" runat="server" ConnectionString="<%$ ConnectionStrings:MyString %>" SelectCommand="MySelectCommand" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Panel runat="server" ID="PanelConfirmMessage" Visible="false">
<p>Are you sure you want to continue?</p>
<asp:Button runat="server" ID="ButtonYes" Text="Yes" OnClick="ButtonYes_Click" />
<asp:Button runat="server" ID="ButtonNo" Text="No" OnClick="ButtonNo_Click" />
</asp:Panel>
<asp:Panel runat="server" id="PanelConfirmLightBox" Visible="false"></asp:Panel>
</form>
</body>
</html>
【问题讨论】:
-
您的意思是当您单击按钮时,整个更新面板都会消失?以及gridview、按钮等?
-
没有。更新面板在那里。一切看起来都一样。我的意思是我的确认面板没有出现。当您单击删除链接时,没有任何反应,页面保持原样。链接按钮没有调用操作来显示面板。无论如何,我找到了答案,见下文。
标签: asp.net vb.net gridview updatepanel