Я пытаюсь сразу установить строку в режим редактирования после ее создания. Однако мой GridViewRow имеет неверный DataItemIndex и нулевой DataItem ...
Вот общее представление о том, что делает мой код: (псевдо VB-код)
Protected Sub gvItems_RowCommand(....)
if (e.CommandName = 'New')
Begin
// create new empty and add it to my data table
m_dtItems.Rows.Add(m_dtItems.NewRow()) // m_dtItems is a DataTable
// rebind the gridview to the modified data table
gvItems.DataSource = m_dtItems
gvItems.DataBind()
// loop through grid view to find the row we just inserted
Dim newRowDataItemIndex As Integer = m_dtItems.Rows.IndexOf(dRow)
For each row in gvItems.Rows
if (row.DataItemIndex = newRowDataItemIndex)
gvItems.EditIndex = row.RowIndex
// rebind the grid so the edit index takes effect
gvItems.DataSource = m_dtItems
gvItems.DataBind()
End
End Sub
Проблема в том, что GridViewRow.DataItemIndex имеет значение , а не правильно. Кажется, он равен RowIndex. Кроме того, мой GridViewRow.DataItem имеет значение null , кроме внутри события GridViewRow_RowDataBound.
Я не использую подкачку или сортировку, что, как я знаю, вызывает проблемы.
Что я делаю не так?