如何根据其他列(v.b dev express)更改另一列中的值

时间:2017-05-28 15:36:14

标签: vb.net winforms devexpress devexpress-windows-ui

我使用devExpress中的Grid来显示数据库中的一些数据,我还实现了RepositoryItemLookUp,因为我需要在列中看到一些值作为下拉列表,这里是代码:

#college

以下是我所谈论的照片:enter image description here

我想知道如何处理这个`Dim riLookup As New RepositoryItemLookUpEdit() riLookup.NullText = String.Empty DataTableDobTableAdapter.FillDob(Me.DsOrders.DataTableDob) riLookup.DataSource = Me.DsOrders.DataTableDob riLookup.ValueMember = "ID" riLookup.DisplayMember = "TITLE" riLookup.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup GridView1.Columns("Code").ColumnEdit = riLookup` 所以如果在那里选择了什么,我可能会在图像中突出显示从N到D的另一列的值。

也许我可以在我的上诉中写出条件 - >格式条件部分。

无论我需要更改另一个列值,如果从这个repositoryitemlookupedit中选择了某些东西,无论我真的在努力解决这个问题,因为我从来没有在v.b之前使用过,也没有devexpress。

谢谢你们 干杯!

ALEX帮助之后: enter image description here

我在那里放了一个断点来检查什么是e.NewValue,我看到它是数据库中的实际ID,因为我选择了ID为1000097的MCI,当破坏命中时我抓住了Id,但带有后缀:" D& #34;最后......为什么会这样?

1 个答案:

答案 0 :(得分:1)

您可以处理RepositoryItemLookupEdit.EditValueChanging事件。

只需在现有代码中添加事件处理程序:

    Dim riLookup As New RepositoryItemLookUpEdit()

    riLookup.NullText = String.Empty

    DataTableDobTableAdapter.FillDob(Me.DsOrders.DataTableDob)

    riLookup.DataSource = Me.DsOrders.DataTableDob

    riLookup.ValueMember = "ID"
    riLookup.DisplayMember = "TITLE"
    riLookup.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup

    GridView1.Columns("Code").ColumnEdit = riLookup
   'Add this line:
    AddHandler riLookup.EditValueChanging, AddressOf repItem_EditValueChanging

现在只需处理事件并按逻辑设置“N / D”列:

   Private Sub repItem_EditValueChanging(sender As Object, e As ChangingEventArgs)
        If e.NewValue > -1 Then 'any ID given => "N"
            GridView1.SetRowCellValue(GridView1.FocusedRowHandle, GridView1.Columns(6), "D")
        Else
            GridView1.SetRowCellValue(GridView1.FocusedRowHandle, GridView1.Columns(6), "N")
        End If
    End Sub

(我假设你的截图中的第6列)。

P.S。:我在您的代码中找不到但有必要让存储库项正常工作的一件事是将它添加到您的GridView RepositoryItems集合中,如:

GridControl1.RepositoryItems.Add(riLookup)