假设做一个论坛,在gridview 中显示X个主题 ,要获取选中的那行的TopicID,有哪些方法?
列 主键:TopicID
外键:PesponseID
作者。发表日期。查看数。回复数
我现在是这样做的
GridView1.DataKeyNames = "TopicID";
int TopicID = Convert.ToInt3(GridView1.DataKeys[GridView1.SelectedIndex].Value); //获取选中行主键的号
但是有这样的错误提示出现:
索引超出范围。必须为非负值并小于集合大小。
参数名: index
不知道怎么改正这个错误,请各位多多指教!非常感谢!
这个就要看你在那个事件处理的了,
1.如果 是在GridView1_SelectedIndexChanged事件那就不会有错的,但是如果是在别的事件里就一定不是对的啊,因为你没有选中任何行,怎么会得到值呢当然是索引超出范围。必须为非负值并小于集合大小。
参数名: index
2.你还可以这样取啊,你不是把表中的数据显示到了GridView里了吗, 在这个事件里你可以这样做
lblTEll.Text = GridView1.SelectedRow.Cells[你的主键列在GridView里的列号].ToolTip.ToString().Trim();如 lblTEll.Text = GridView1.SelectedRow.Cells[0].ToolTip.ToString().Trim();
3.RowDeleting事件里的话可以这样写,注意是RowDeleting不是RowDeletd事件
GridView1.Rows[e.RowIndex].Cells[你的主键列在GridView里的列号,].ToolTip.ToString().Trim();这样也可以的,
试试吧, 如果不行的话可以回信息咱们讨论一下呵呵,