C#当网页上的GridView未显示时隐藏按钮
我使用的是C#VS2005和sqlserver2005 我有一个GridView,它从两个表中导入数据,我在GridView下面有一个“导出”按钮,它允许导出GridView数据的结果 但是,当GridView未显示时,“我的导出”按钮仍会显示。是否有条件隐藏按钮并仅在显示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
<%@ 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中 这样做
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;
}
}
将它们都放在面板中,并隐藏面板,而不是隐藏网格。按钮和网格视图都有一个.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;
}