如何让Gridview在没有数据的时候显示表头
方法一:采用其EmptyTemplate来实现,模版中写一个静态的table;  如果你的表头只是html的文本,没有任何控件。你可以在表头显示出来的时候,拷贝表头部分的html,然后放到EmptyDataTemplate里面。  缺点: 麻烦,每个GridVIew都需要设置一下。  方法二: 若数据源为DataTable,则当无数据时,始终返回一个空行的DataTable;  若数据源是集合类(ArrayList,List<T>等),无数据时,生成一个空的实体,加入到集合类中。  缺点: 还是麻烦。  方法三:  也是要给大家介绍的方法: 扩展GridView来实现。继承GridVie,重写Render方法,当其数据源为空时做一下处理,直接看代码吧:
这三个都知道了。

解决方案 »

  1.   

    EmptyTemplate使用比较多
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DataRowView d = (DataRowView )e.Row.DataItem;
            if (d["id"]==null || d["id"]==string.Empty)
                e.Row.Visible = false;
        }
    }
    virtual void RenderEmptyContent
      

  2.   

    DataTable dt =GridView1.DataSource as DataTable;
    dt.row.add("","","","","","");
    dt.AcceptChange();
      

  3.   

    my blog , just for reference 
    http://blog.csdn.net/jason_dct/archive/2010/05/15/5594604.aspx
      

  4.   

    用sql,select ...........where 1=0,可以显示表头