当网页上的GridView不显示时隐藏按钮
本文关键字:显示 隐藏 按钮 GridView 网页 | 更新日期: 2023-09-27 18:14:39
我使用c# VS2005和SQL Server 2005。
我有一个GridView,从2个表中导入数据,我有一个"导出"按钮在GridView下面,允许导出GridView数据的结果。
然而,当GridView不显示时,我的导出按钮仍然显示。无论如何隐藏一个按钮条件,并显示它只有当GridView显示?下面是我的代码示例:
<%@ Page Language="C#" MasterPageFile="~/MainPage.master" AutoEventWireup="true" CodeFile="Comparison.aspx.cs" Inherits="UserDatabase" Title="User Comparison" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:<ConnectionString> %>" SelectCommand="<SQL>" OnSelecting="SqlDataSource1_Selecting">
</asp:SqlDataSource>
<script language="javascript" type="text/javascript">
// <!CDATA[
// ]]>
</script>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:Button ID="btnExpExcel" runat="server" Height="23px" OnClick="btnExpExcel_Click"
Text="Export" Width="200px" />
</asp:Content>
在Gridview中添加一个DataBound事件。检查gridview中的行,并相应地设置可见性。
ASPX
<asp:GridView ID="GridView1" runat="server"
DataSourceID="SqlDataSource1" ondatabound="gv_DataBound"
>
</asp:GridView>
背后的代码protected void gv_DataBound(object sender, EventArgs e)
{
btnExpExcel.Visible = GridView1.Rows.Count > 0;
//The Following is actually better , but less readable
//We cast the sender to Gridview. The sender is the control
//initiating the event
//btnExpExcel.Visible = ((GridView)sender).Rows.Count > 0;
}
在页面上放置一个面板,并以编程方式添加GridView和Button。当你想显示面板时,将面板的Visible属性设置为true,当你不想显示面板时,将其设置为false。
不使用DataSourceID,您可以在后面的代码中使用DataSource和DataBind,这样您就可以检查数据源的数据来显示或隐藏导出按钮…像这样:
if(!Page.IsPostBack){
GridView1.DataSource = your_DataSet_or_DataTable_or_Anything;
GirdView1.DataBind();
if(your_DataSet_or_DataTable_or_Anything == null){
btnExpExcel.Visible = false;
}
}
^ ^
能否将按钮放在gridview的页脚模板中
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.footertemplate.aspx这样做…
-
创建绑定gridview数据的方法
private void Export_Bind() { DataSet oDs_Export = new DataSet(); oDs_Export = oFCC.GetExport(); ---> this is method which i have define in the Class Lib. if (oDs_Export.Tables[0].Rows.Count > 0) { GridView1.DataSource = oDs_Export; GridView1.DataBind(); lbGVCount.Text = oDs_Export.Tables[0].Rows.Count.ToString(); btnExpExcel.Enabled = true; } else { btnExpExcel.Enabled = false; } }
-
那么page_load
中的这个方法如果(! IsPostBack){
Export_Bind ();}
如果你觉得有用,请标记为你的答案,否则让我知道