ASP.NET - 通过读取更新面板内网格视图中的数据启用按钮

ASP.NET - Enabling button by reading data in Grid View inside Update Panel

我有两个按钮和 GridView,它们是:

<asp:Button ID="btn-search" runat="server" OnClick=btn_search_Click />
<asp:Button ID="btn-export" runat="server" OnClick=btn_export_Click />
<asp:GridView ID="gridview1" runat="server" />

btn-search 是将数据从 SqlDataSource 绑定到 gridview1 的控件。 btn-exportPage_Load 处禁用,当 gridview1 至少有一行时将启用(如果 [=15= 中没有 data/row,btn-export 将保持禁用状态=]).

起初我在后面的代码中写了这个:

    protected void btn_search_Click(object sender, EventArgs e)
    {
        /* Binding data to GridView */
        if (this.gridview1.Rows.Count > 0)
        {
            this.btn_export.Enabled = true;
        }
    }

它奏效了。

但是,然后我必须将 gridview1 包装在 UpdatePanel 中,这样当在 GridView 中进行数据绑定时它不会刷新整个页面,使用 btn-search 作为 AsyncPostBackTrigger .

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button ID="btn-search" runat="server" OnClick=btn_search_Click />
<asp:Button ID="btn-export" runat="server" OnClick=btn_export_Click />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:GridView ID="gridview1" runat="server">
            <Columns>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btn_search" />
</Triggers>
</asp:UpdatePanel>

当数据绑定到gridview1时,btn-search仍然被禁用。 我尝试在 GridView 和 UpdatePanel 事件中写入 this.btn_export.Enabled = true,例如 OnDataBoundOnDataBindingOnRowDataBound,但它仍然无效。

Grayfield,它不起作用,因为当您单击搜索按钮时,只会更新更新面板的内容。 尝试在更新面板的 ContentTemplate 中添加按钮,它应该可以工作。