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

如何在RowDataBound里面取出gridview里当前操作行的值
我的代码是:
  protected void gvloglist_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
  int id = int.Parse(e.Row.RowIndex.ToString());
  Response.Write(id);
  }
结果是:-10123-1-10123-1
这是为什么呢?我只是想取出当前操作行的值,比如说第1行就取出1,我一共有4条数据,就应该打印出0、1、2、3,为什么是上面那串字符呢?求解!到底怎么取出当前操作行的值?

------解决方案--------------------
首先只要写int id = e.Row.RowIndex;就可以了,RowIndex本来就是int型的。
-1对应的行是头部、脚部这类非数据行,数据行的RowIndex都是非负的。
------解决方案--------------------
你改成
protected void gvloglist_RowDataBound(Object sender, GridViewRowEventArgs e)
{
Response.Write(e.Row.RowType);
}
就理解了。
------解决方案--------------------
所以一般要加个判断
if(e.Row.RowIndex>-1)
//......