gridview 绑定数据为空时,表头部分内容显示的解决方法

来源:互联网 发布:沙迪克火花机编程书 编辑:程序博客网 时间:2024/05/22 00:18

      最近学习gridview,作了一个筛选功能。所有的数据库访问代码都自己写。当筛选的内容为空的时候,整个表就会不见。这个显然很不合适。于是上网找了资料,解决了!写出来,分享下。

      首先简单说下自己的gridview的筛选功能的实现:

      采用静态绑定sqldatasource,但是sqldatasource的selectCommand通过自己的筛选条件进行修改。没有采用datafield,因为那样还不知道怎么在对应列的表头部分添加下拉选框。每次更改数据库内容后,就进入bind函数,更新gridview(说明,gridview放在updatapanel中)。这个就是具体的实现部分了。

     需要定义一个全局变量,用于存放sellectCommand的具体内容。

      function bind() {

          gridview1.DataSourceId =null;

          DataSet ds = this.getDataSet();   //这个函数自己定义,获取gridview筛选结果对应的dataset。

          DataTable dt = ds.Tables["tb"];

          if(dt.Rows.Count == 0) {  //如果筛选结果为空

 

            //下面四句是最重要的:
            dt.Rows.Add(dd.NewRow());
            gridView1.DataSource = dt;
            GridView1.DataBind();
            GridView1.Rows[0].Cells.Clear();//不清空,就会多出一行label来好像。

 

 

           } else {

            sqldatasource1.selectCommand = this.getSqlCmd(); //自己定义的查询语句

            gridview1.DataSource = null;

            gridview1.DataSourceId = null;

            gridview1.DataSourceId = "sqldatasource1";

          }

      }

      之所以既用sqldatasource又用dataset作为gridview的数据源,因为图sqldatasource修改查询语句方便。不过好像这样反而挺乱的。

 

原创粉丝点击