2013-04-06 2 views
0

Я создал Templatefield в моем ASP GridView, и теперь я хочу написать небольшую логику для флажка в gridview. Я пытаюсь код FindControl для каких-либо успехов, я использовал эти комбинации ...Gridview 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 не действует в выбранном индексе строки изменен ....... мероприятие .... –

+0

oK ... поэтому в каких случаях я должен положить его? Или мне нужно изменить RowIndex для чего-то еще? –

ответ

0

Это должно работать в вашем случае:

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

Это сработало отлично. У меня был похожий код, но я не мог заставить его работать, хе-хе. Бесконечно благодарен! –

0

Вы можете получить Gridview Selected Row Index..lyk это

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

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

i применил код к VB .. 'Dim GridViewRow As Row = GridView1.Rows.SelectedIndex' и получил эту ошибку« Ошибка «System.Data.SqlClient.Row» недоступен в этом контексте, потому что это «Друг» '. \t " –

+0

Gridview1.Rows.Selected дает только номер индекса. Вам нужно написать lyk this GridView1.Rows [GridView1.SelectedIndex]; –

Смежные вопросы