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

时间:2016-04-07 03:57:54

标签: c# asp.net gridview updatepanel

我有两个按钮和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是一个将数据绑定到gridview1 SqlDataSource的控件。 btn-export已停用Page_Load,如果gridview1至少有一行(btn-export将在gridview1中没有数据/行时保持停用,则会启用 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包装在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> 时在GridView中进行数据绑定时不会刷新整个页面。< / p>

gridview1

当数据绑定到btn-search时,this.btn_export.Enabled = true仍然被禁用。 我尝试在GridView和UpdatePanel事件中编写OnDataBound,例如OnDataBindingOnRowDataBoundpublic function exportReferral($sourceRef){ ob_end_clean(); ob_start(); //At the very top of your program (first line) \Excel::create('ViecBonus ' . 'referal report', function($excel) use ($sourceRef) { $excel->sheet('ViecBonus Data', function($sheet) use ($sourceRef) { $sheet->fromModel($sourceRef); }); })->export('xlsx'); } ,但它仍无效。

1 个答案:

答案 0 :(得分:0)

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