C#在未显示网页上的GridView时隐藏按钮

时间:2011-11-16 02:18:26

标签: c# asp.net sql visual-studio visual-studio-2005

我正在使用C#VS2005和SQL Server 2005。

我有一个从两个表中导入数据的GridView,我在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>

5 个答案:

答案 0 :(得分:1)

向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;
}

答案 1 :(得分:0)

在页面上放置一个面板,然后以编程方式将GridView和Button添加到其中。如果要显示它,请将面板的Visible属性设置为true,否则将其设置为false。

答案 2 :(得分:0)

您可以在代码中使用DataSource和DataBind代替使用DataSourceID,这样您就可以检查数据源的数据以显示或隐藏“导出”按钮... 像这样:

if(!Page.IsPostBack){
  GridView1.DataSource = your_DataSet_or_DataTable_or_Anything;
  GirdView1.DataBind();
  if(your_DataSet_or_DataTable_or_Anything == null){
    btnExpExcel.Visible = false;
  }
}

^^

答案 3 :(得分:0)

您可以将网格视图中的按钮放在gridview页脚模板中

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.footertemplate.aspx

答案 4 :(得分:0)

这样做..

  1. 创建一个绑定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;
                 }
        }
    
  2. 然后在page_load中使用此方法

    如果(!的IsPostBack) {

    Export_Bind(); }

    如果您发现它有用,请将其标记为您的答案,否则请告诉我......