2013-04-06 53 views
0

我在我的ASP GridView中创建了一个Templatefield,现在我想为GridView中的复选框写一个小逻辑。我尝试的FindControl代码没有成功,我用这些组合...GridViewView FindControl里面SelectedIndexChanged事件

 Dim chkChosen As CheckBox = 

    'GridView1.Rows(e.RowIndex).FindControl("Checkbox1") 
     ' DirectCast(GridView1.Rows(e.RowIndex).FindControl("Checkbox1"), CheckBox).Value 
    'chkChosen = (CheckBox)row.FindControl("Checkbox1") 

我评论他们,因为我已经用这三个没有成功的组合。他们都给我同样的错误......“RowIndex不是SystemArg的成员...”。所有这些都在“SelectedIndexChanged”受保护的子项下。

+0

乌尔得到错误BCZ e.RowIndex不选择行索引有效改变.......事件.... – 2013-04-06 12:37:44

+0

oK ...所以我应该把它放在什么类型的事件?或者我需要改变RowIndex的其他东西? – 2013-04-06 12:45:34

回答

0

这应该工作你的情况:

Dim chkChosen As CheckBox = CType(GridView1.SelectedRow.FindControl("Checkbox1"), CheckBox) 
+1

这工作完美。我有一个类似的代码,但不能得到它的工作,嘿。太感谢了! – 2013-04-06 13:06:14

0

你可以得到由GridView的选择行Index..lyk这

GridViewRow row = GridView1.Rows[GridView1.SelectedIndex]; 

cHeckbox chk=row.FindControl("chk"); 
+0

我将代码调用到VB ..'Dim GridViewRow As Row = GridView1.Rows.SelectedIndex'并得到这个错误“Error 'System.Data.SqlClient.Row'在此上下文中不可访问,因为它是'Friend '\t“ – 2013-04-06 13:00:11

+0

Gridview1.Rows.Selected in只给出索引号。您必须编写lyk这个GridView1.Rows [GridView1.SelectedIndex]; – 2013-04-06 13:01:50

相关问题