Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#当网页上的GridView未显示时隐藏按钮_C#_Asp.net_Sql_Visual Studio_Visual Studio 2005 - Fatal编程技术网

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

C#当网页上的GridView未显示时隐藏按钮,c#,asp.net,sql,visual-studio,visual-studio-2005,C#,Asp.net,Sql,Visual Studio,Visual Studio 2005,我使用的是C#VS2005和sqlserver2005 我有一个GridView,它从两个表中导入数据,我在GridView下面有一个“导出”按钮,它允许导出GridView数据的结果 但是,当GridView未显示时,“我的导出”按钮仍会显示。是否有条件隐藏按钮并仅在显示GridView时显示?以下是我的代码示例: <%@ Page Language="C#" MasterPageFile="~/MainPage.master" AutoEventWireup="true" CodeFi

我使用的是C#VS2005和sqlserver2005

我有一个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>

// 

在页面上放置一个面板,并以编程方式向其中添加GridView和按钮。如果要显示面板的Visible属性,请将其设置为true;如果不显示,请将其设置为false

您可以在代码隐藏中使用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;
  }
}

^^

能否将按钮放在gridview页脚模板的gridview中

这样做

  • 创建一个方法来绑定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;
                 }
        }
    
  • 然后在页面中加载此方法

    如果(!IsPostBack) {

    导出绑定(); }

    如果你觉得它有用,请将它标记为你的答案,否则请让我知道

  • 将事件添加到Gridview。检查gridview中的行,并相应地设置可见性

    ASPX


    将它们都放在面板中,并隐藏面板,而不是隐藏网格。按钮和网格视图都有一个.Visibleproperty@HasanKhan我已经把它们都放在一个面板中了,当我的gridview没有显示时,我如何将其设置为隐藏panal?@RUiHAO“隐藏面板而不是网格视图”如果我设置面板网格的生存能力,如果我将其设置为false,它将始终隐藏,即使GridView中有数据,为什么他需要以编程方式添加数据?实际上是个人偏好。我发现ASP.NET的东西在以编程方式添加时更容易操作,因为您有点被绑定到添加到页面的“静态”项(并且不想添加/编辑)。嗨,Hatake,我必须为GridView1添加什么样的内容。DataSource=您的数据集或数据表或任何内容;?我尝试了GridView1.DataSource=SqlDataSource1;但它不起作用。在aspx页面中删除部分
    DataSourceID=“SqlDataSource1”
    时出现错误。在代码隐藏中,数据源是从数据库、数组或任何包含数据的东西中获取的数据^^
    <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;
    }