Как изменить свойство Column.EditType для несвязанной строки Janus GridEx (v3) во время выполнения - PullRequest
0 голосов
/ 17 января 2020

Добрый день,

Я чего-то упускаю, и мне нужна помощь.

Что я пытаюсь сделать, это изменить EditType столбца флажка для строки GridEx, которую я добавляю во время выполнения. Код, который у меня есть на данный момент, выглядит следующим образом:

Private Sub FillGroupGrid(asset as AssetDetail)
    Dim row As GridEXRow = jgrdGroup.AddItem()

    row.BeginEdit()

    row.Cells(COL_NAME_GROUP_ID).Value = asset.GroupID
    row.Cells(COL_NAME_NAME).Value = asset.Name

    row.Cells(COL_NAME_SELECTED).Column.EditType = IIf(asset.InUse, EditType.NoEdit, EditType.CheckBox)
    row.IsChecked = asset.Selected

    row.EndEdit()
End Sub

Строки добавляются без проблем, но тип редактирования столбца флажка не изменится с EditType.CheckBox на EditType.NoEdit, если asset.InUse это правда. Когда я создал столбец в конструкторе GridEx, я установил для EditType значение CheckBox, и именно там он и остается.

Если есть какая-либо разница, я использую Visual Studio 2013, а элемент управления GridEx - 3.5.0.0

.

Если бы вы могли указать мне правильное направление или на некоторые документы / примеры, я был бы признателен. Я пробовал Google, но это не принесло мне никакой радости.

1 Ответ

0 голосов
/ 26 января 2020

Я думаю, что вы не можете изменить тип редактирования отдельной ячейки, вы должны изменить тип редактирования столбца. В вашем случае вы можете установить флажок «Изменить тип значения» на «Истина» или «Ложь» (отмечено или нет). Также для столбца вы должны установить его на ActAsSelector = True

row.IsChecked = asset.Selected

Приведенный выше код сделает его отмеченным или не отмеченным в зависимости от актива . Выбранное значение, Если вы хотите отменить операцию редактирования для непроверенной ячейки, существует одно событие с именем grd_CurrentCellChanging(object sender, CurrentCellChangingEventArgs e). Я просто дам один пример кода в C#, вы можете преобразовать его в VB. Net.

 private void grd_CurrentCellChanging(object sender, CurrentCellChangingEventArgs e)
    {
        if (e.Row != null)
            e.Cancel = !e.Row.IsChecked;
    }

Надеюсь, это поможет вам!

...