日期:2014-05-18  浏览次数:20359 次

熟悉gridview的使用的请帮个忙!!!
本人使用gridview创建了一个check的模板列,还有一个包含主键的隐藏列。

为什么这两列都无法取到正确的值,每次取都是空值??????

------解决方案--------------------
数据绑定了吗?

------解决方案--------------------
估计是你取的方法有问题,将你的代码贴出来看看
另外,最好不要用主键隐藏列,而是用DataKeyNames
------解决方案--------------------
还是贴出完整的代码吧
------解决方案--------------------
this.GridView1.Rows[0].Cells[0].Text; 

用的这个方法取得值,取不出来数据。 

请大家帮帮忙,我才用asp.net不久。


比如:Label lb = GridView1.Rows[0].FindControl("labelID") as Label;
------解决方案--------------------
设置DataKeyNames值为表中的PK字段

看你是什么事件了 更新、删除还是编辑?
更新
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
编辑
int id = Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);
删除
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);

模板列事件:
Control cmdSource = (Control)e.CommandSource;
GridViewRow gvr = (GridViewRow)cmdSource.NamingContainer;
int rowIndex = gvr.RowIndex;
int id = Convert.ToInt32(GridView1.DataKeys[rowIndex].Value.ToString());//取得ID

还有别的方法 比如和 在HTML代码里 让模板列中的BUTTON 按钮的CommandArgument属性和表中的PK值绑定
在模板列中取值也是可以的