GridView内部按钮内部更新面板不起作用

时间:2015-08-31 03:19:48

标签: asp.net vb.net gridview updatepanel

我刚开始在我的解决方案中使用更新面板,所以我慢慢熟悉它们。我有一个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>

2 个答案:

答案 0 :(得分:0)

要从更新面板回发gridview模板字段控件,您可以将控件添加到项目的DataBind事件后面代码中的Trigger集合中。

请尝试添加OnDataBinding的{​​{1}}:

LinkButton

答案 1 :(得分:0)

谢谢大家的帮助。我通过别人的帮助得到了答案。答案很简单。我所要做的就是将确认信息放在更新面板中以及其他所有内容中。

带修复的缩短版本:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:GridView ID="GridView1"...>
            <Columns>....</Columns>
        </asp:GridView>
        <asp:SqlDataSource ...></asp:SqlDataSource>

        <!--- THE CONFIRMATION PANELS INSIDE THE UPDATEPANEL AS SHOWN HERE --->

        <asp:Panel runat="server" ID="PanelConfirmMessage" Visible="false">
        ...
        </asp:Panel>
        <asp:Panel runat="server" id="PanelConfirmLightBox" Visible="false"></asp:Panel>
    </ContentTemplate>
</asp:UpdatePanel>