最近学习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();
GridVie