我正在使用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>
答案 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)
这样做..
创建一个绑定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(); }
如果您发现它有用,请将其标记为您的答案,否则请告诉我......