Я застрял в ситуации, когда мне нужно отключить несколько столбцов в каждой строке, кроме недавно добавленной строки.
То есть у меня есть 10 столбцов в сетке, и первые 3 столбца связаны с данными и поступают из базы данных как отключенные или доступные только для чтения. Остальные доступны для редактирования.
Если я добавлю новую строку, то все столбцы новой строки должны быть включены, пока она не будет сохранена.
У меня нет ни DataKey, ни первичного ключа для моей существующей строки или новой строки. Я должен проверить некоторые логические значения, такие как IsNewRow
.
В моем текущем сценарии я использую этот блок кода:
Private Sub dgTimeSheet_InitializeRow(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeRowEventArgs) Handles dgTimeSheet.InitializeRow
''if either column key is Project, Class or Milestone
'' Activation.NoEdit = Disable and Activation.AllowEdit = Enable
Dim index As Integer = e.Row.Index
If e.Row.IsAddRow Then
dgTimeSheet.Rows(index).Cells(PROJECT).Activation = Activation.AllowEdit
dgTimeSheet.Rows(index).Cells(SERVICE_ISSUE_CLASS).Activation = Activation.AllowEdit
dgTimeSheet.Rows(index).Cells(MILESTONE).Activation = Activation.AllowEdit
Else
dgTimeSheet.Rows(index).Cells(PROJECT).Activation = Activation.NoEdit
dgTimeSheet.Rows(index).Cells(SERVICE_ISSUE_CLASS).Activation = Activation.NoEdit
dgTimeSheet.Rows(index).Cells(MILESTONE).Activation = Activation.NoEdit
End If
CheckRows()
End Sub
Проблема в том, что если я нажимаю на отключенные / доступные только для чтения строки, то новые добавленные строки также отключаются, чего я не хочу.