2016-08-31 10 views
0

Ich versuche zu überprüfen, ob ein Kontrollkästchen in einer Gridview aktiviert ist und ob es angeklickt ist, um es der Datentabelle hinzuzufügen.Wenn Kontrollkästchen aktiviert und dann zu Datentabelle von Gridview hinzufügen

Jedoch bin ich eine Fehlermeldung erhalten, wenn Sie das Kontrollkästchen für die Zeile nicht markiert ist:

Es gibt keine Zeile an Position Hier 1.

mein Code:

 'Creates a new datatable 
     Dim dtQuestions As New DataTable("QuestionsData") 

     'Add columns to datatable 
     For Each cell As TableCell In example.HeaderRow.Cells 

      dtQuestions.Columns.Add(cell.Text) 

     Next 

     For Each row As GridViewRow In example.Rows 

      Dim chkTest As CheckBox = CType(row.FindControl("chkTest"), CheckBox) 
      If chkTest.Checked = True Then 

       dtQuestions.Rows.Add() 

       For i As Integer = 0 To row.Cells.Count - 1 

        Try 

         dtQuestions.Rows(row.RowIndex)(i) = row.Cells(i).Text 

        Catch ex As Exception 

        End Try 


       Next 

      Else 

       'Do not add it to Datatable 

      End If 

     Next 

Ich erhalte den Fehler bei diesem Code:

dtQuestions.Rows (row.RowIndex) (i) = row.Cells (i) .Text

Ich weiß nicht, wie dies zu beheben.

Antwort

0

Wenn Sie eine Zeile in eine Datentabelle hinzufügen möchten, sollten Sie diesen Code schreiben

For Each row As GridViewRow In example.Rows 
    Dim chkTest As CheckBox = CType(row.FindControl("chkTest"), CheckBox) 
    If chkTest.Checked = True Then 

     Dim tableRow = dtQuestions.NewRow() 

     For i As Integer = 0 To row.Cells.Count - 1 
      tableRow(i) = row.Cells(i).Text 
     Next 
     dtQuestions.Rows.Add(tableRow) 
    End If 
Next 

Beachten Sie, dass ich die leere try/catch entfernt haben. Tun Sie es nicht, weil es nur Ihre Probleme verbirgt.

+1

Danke !! Wird akzeptieren. –

Verwandte Themen