我正在尝试检查是否在gridview中选中了复选框,是否选中它以将其添加到数据表中。
但是,当取消选中该行的复选框时,我收到错误:
位置1没有行。
这是我的代码:
'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
我收到此代码的错误:
dtQuestions.Rows(row.RowIndex)(i)= row.Cells(i).Text
我不知道如何解决这个问题。
答案 0 :(得分:0)
如果要向DataTable添加行,则应编写此代码
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
请注意,我已删除了空的try / catch。不要这样做,因为它只是隐藏了你的问题。