Создание инфраструктуры UltraGinGrid для определенных колонок только для чтения - PullRequest
1 голос
/ 20 мая 2010

Я застрял в ситуации, когда мне нужно отключить несколько столбцов в каждой строке, кроме недавно добавленной строки.

То есть у меня есть 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

Проблема в том, что если я нажимаю на отключенные / доступные только для чтения строки, то новые добавленные строки также отключаются, чего я не хочу.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2015

В этих примерах создаются столбцы только для чтения для интерфейса, который использует клиент

Пример строки с тремя столбцами. Установите два столбца как доступные только для чтения, а третий - как редактируемый для пользователя.

три столбца, определенные в конструкторе: System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;

установить столбцы 1 и 2 напрямую

this.dataGridViewTextBoxColumn1.ReadOnly = true
this.dataGridViewTextBoxColumn2.ReadOnly = true

Вы все еще можете обновить все столбцы в исходном коде. Клиент сможет редактировать только третий столбец.

0 голосов
/ 30 октября 2010

Я борюсь с подобной проблемой в C #, так что это рыбалка в темноте ... Возможно ли, в вашем случае, добавить IgnoreRowColActivation = true, чтобы предотвратить возврат строк?

...