グリッドビューの「更新」ボタンをクリックすると、RowUpdatingイベントが発生しますが、「インデックスが範囲外です。 。コレクションのサイズパラメータ名:インデックス」Gridview RowUpdatingエラー - インデックスが範囲外です
次は、VBのコードです:
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
If e.RowIndex >= 0 Then
Dim row As GridViewRow = DirectCast(Gridview1.Rows(e.RowIndex), GridViewRow)
Dim Col1_SL As CheckBox = DirectCast(row.FindControl("cb1_SL"), CheckBox)
.................
Dim cmd As New System.Data.SqlClient.SqlCommand
Dim sql As String
Dim reader As System.Data.SqlClient.SqlDataReader
Using conn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("hris_shiftdutyConnectionString").ConnectionString)
conn.Open()
cmd.Connection = conn
sql = "SET DATEFORMAT dmy;UPDATE troster SET SL='" & Convert.ToInt32(Col1_SL.Checked) & "' where roster_key='" & Col1_RosterKey.Text & "';"
cmd.CommandText = sql
reader = cmd.ExecuteReader()
conn.Close()
reader.Close()
End Using
'Reset the edit index.
Gridview1.EditIndex = -1
'Bind data to the GridView control.
BindData()
End If
End Sub
助けてください。 ViewStateは無効になっていると、ページがポストバックされていないだけでデータバインディングしているので感謝 ジョー
コントロールのビューステートが有効になっていますか?ページがポストバックされていないときにのみGridViewをデータバインドしていますか? – rsbarro
私のgridviewで、私はViewstateを無効にしていましたEnableViewState = "False"とpage_loadで私はそれが投稿されていない場合にGridviewをバインドします(If IsPostBackならば) –
ViewStateを有効にすると、 viewstateがロードされているコントロールツリーは、前回の要求時にビューステートを保存するために使用されたコントロールツリーと一致する必要があります。 [更新]ボタンをクリックすると表示されます。だから私はそれを設定する必要があります=偽 –