
GridView隐藏列的问题
GridView的数据源是通过DataSet进行动态绑定的,列数不固定。现在我想隐藏最后一列,使用了GridView1.Columns[0].Visible=false,...
GridView的数据源是通过DataSet进行动态绑定的,列数不固定。现在我想隐藏最后一列,使用了GridView1.Columns[0].Visible = false,但是一直提示超出最大值。数据绑定是成功的,如果屏蔽这句可以正常显示数据。代码如下:
//conn的定义
//最终的查询语句
string sql = recsql + " where ny='" + ny + "'"; //拼出来查询语句
OracleDataAdapter myad1 = new OracleDataAdapter("" + sql + "", conn);
OracleCommandBuilder mybd1 = new OracleCommandBuilder(myad1);
DataSet myds1 = new DataSet();
myad1.Fill(myds1, "tb");
int colnum = myds1.Tables["tb"].Columns.Count;
GridView1.DataSource = myds1.Tables["tb"];
GridView1.DataBind();
GridView1.Columns[colnmu-1].Visible = false;//执行到这里就报错,提示超出范围,我改成0也不行。
另外我试过隐藏最后一列每行的数据,但是这样没法隐藏表头。代码如下:
for (int i = 0; i < 20; i++)
{
GridView1.Rows[i].Cells[colnum - 1].Visible = false;
}
求解,谢谢! 展开
//conn的定义
//最终的查询语句
string sql = recsql + " where ny='" + ny + "'"; //拼出来查询语句
OracleDataAdapter myad1 = new OracleDataAdapter("" + sql + "", conn);
OracleCommandBuilder mybd1 = new OracleCommandBuilder(myad1);
DataSet myds1 = new DataSet();
myad1.Fill(myds1, "tb");
int colnum = myds1.Tables["tb"].Columns.Count;
GridView1.DataSource = myds1.Tables["tb"];
GridView1.DataBind();
GridView1.Columns[colnmu-1].Visible = false;//执行到这里就报错,提示超出范围,我改成0也不行。
另外我试过隐藏最后一列每行的数据,但是这样没法隐藏表头。代码如下:
for (int i = 0; i < 20; i++)
{
GridView1.Rows[i].Cells[colnum - 1].Visible = false;
}
求解,谢谢! 展开
1个回答
展开全部
再用同样的方法隐藏表头不行么??
GridView1.HeaderRows
GridView1.HeaderRows
更多追问追答
追问
这个办法我试过了,确实可以,谢谢,但是为什么不能直接设置column.visible=false呢?
追答
因为列是自动生成的列
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询