【发布时间】:2016-08-23 13:24:25
【问题描述】:
我的项目中有一个 UltraGrid。可以将数据输入每个单元格,然后将其保存到数据库中。我希望能够禁用当前行中的所有单元格,除了一个名为Product_Code 的单元格。一旦数据被输入到活动行列(这是通过ValueList 输入的),我希望所有其他单元格都可以用于输入数据。
到目前为止我已经尝试过
If Me.ugProducts.ActiveRow.Cells("Product_Code").Value.ToString = "" Then
Me.ugProducts.ActiveRow.Cells("Product_Volume").Activation = Activation.Disabled
Else
Me.ugProducts.ActiveRow.Cells("Product_Volume").Activation = Activation.AllowEdit
End If
但没有成功。构建项目后,所有单元格都可以立即输入,尽管没有输入任何值。
为什么它不起作用?最好的方法是什么?
【问题讨论】:
-
DataSource是否绑定到网格?如果是这种情况,它可能无法编辑。此外,您可以为 ex 做列,而不是做一个特定的单元格:Me.ugProducts.DisplayLayout.Bands(0).Columns(0).CellActivation = Activation.Disabled。 这对我有用Me.ug.Rows(whatrow).Cells(whatcolumn).Activation = Activation.Disabled -
@Zaggler 那么,如果是这样,我就没有办法让它们禁用吗?
-
如果基础表不可编辑,则不会。原因是它绑定到网格并继承了架构。唯一的方法是确保
DataTable的列不是只读的...另一方面,默认情况下所有单元格除非更改,否则在运行时可编辑。 -
@Zaggler 有什么替代方案吗?理想情况下,我需要先填写
Product_Code列,因为其他列基于其中的数据 -
@Steve
EditAndSelect位在哪里,在AfterRowUpdate方法中?
标签: vb.net infragistics ultrawingrid