0

下午好,

我在某个地方遗漏了一些东西,我需要帮助。

我想要做的是更改我在运行时添加的 GridEx 行的复选框列的 EditType。我目前的代码如下:

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

添加行没有问题,但如果asset.InUse 为真,复选框列的编辑类型不会从EditType.CheckBox 更改为EditType.NoEdit。当我在 GridEx 设计器中创建列时,我将 EditType 设置为 CheckBox,这就是它所在的位置。

如果它有什么不同,我使用的是 Visual Studio 2013 并且 GridEx 控件是 3.5.0.0

如果您能指出我正确的方向,或者在一些文档/示例中,我将不胜感激。我试过谷歌,但它并没有给我带来任何快乐。

4

1 回答 1

0

我认为您无法更改单个单元格编辑类型,您必须更改列编辑类型。在您的情况下,您可以将复选框 Edit Type 值设置为 True 或 False(Checked 或 Unchecked )。同样对于 Column 您必须将其设置为ActAsSelector = True

row.IsChecked = asset.Selected

上面的代码将根据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;
    }

希望对您有所帮助!

于 2020-01-26T08:56:11.203 回答