首页 新闻 会员 周边

DataKeys DataKeyNames gridview选中行

0
悬赏园豆:10 [已解决问题] 解决于 2009-06-02 11:26

假设做一个论坛,在gridview 中显示X个主题 ,要获取选中的那行的TopicID,有哪些方法?

列     主键:TopicID

        外键:PesponseID

        作者。发表日期。查看数。回复数

我现在是这样做的
GridView1.DataKeyNames = "TopicID";
 int TopicID = Convert.ToInt3(GridView1.DataKeys[GridView1.SelectedIndex].Value); //获取选中行主键的号
但是有这样的错误提示出现:
  索引超出范围。必须为非负值并小于集合大小。  
  参数名:   index 

不知道怎么改正这个错误,请各位多多指教!非常感谢!

 

 

 

               

沐紫菀的主页 沐紫菀 | 初学一级 | 园豆:1
提问于:2009-06-01 21:04
< >
分享
最佳答案
0

这个就要看你在那个事件处理的了,

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();这样也可以的,

试试吧, 如果不行的话可以回信息咱们讨论一下呵呵,

 

苏飞 | 老鸟四级 |园豆:2024 | 2009-06-02 09:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册