junlingzhu2002 发表于 2012-3-8 13:53:00

ComboBoxCell和Textboxcell进行连锁反应的设定

有没有办法对ComboBoxCell和Textboxcell进行连锁反应
比如从Sql中取得以下数据设置到DataTable中对ComboBoxCell进行初期设定
0001 商品1
0002 商品2
0003 商品3
希望结果
下拉ComboBoxCell数据,如果选中商品1,Textboxcell里显示0001
同样Textboxcell里输入0001,ComboBoxCell会表示商品1

robert 发表于 2012-3-12 08:56:00

你的MutliRow是数据绑定的吗?如果是,把他们绑定相同的DataField就可以。如果不是数据绑定的话在CellValueChanged事件里同步两个Cell的值。

junlingzhu2002 发表于 2012-3-13 09:08:00

不是数据绑定,
怎样能数据绑定,
大概想要实现的结果,我放在添付里了,你帮我看看

robert 发表于 2012-3-15 09:25:00


    Private Sub GcMultiRow1_CellEditedFormattedValueChanged(sender As Object, e As GrapeCity.Win.MultiRow.CellEditedFormattedValueChangedEventArgs) Handles GcMultiRow1.CellEditedFormattedValueChanged
      If e.CellName = "comboCell" Then
            ChangeValue(True, Me.GcMultiRow1.CurrentCell.EditedFormattedValue, e.RowIndex)
      End If
      If e.CellName = "textCell" Then
            ChangeValue(False, Me.GcMultiRow1.CurrentCell.EditedFormattedValue, e.RowIndex)
      End If
    End Sub

    Private Sub GcMultiRow1_CellValueChanged(sender As Object, e As GrapeCity.Win.MultiRow.CellEventArgs) Handles GcMultiRow1.CellValueChanged
      If e.CellName = "comboCell" Then
            ChangeValue(True, Me.GcMultiRow1.CurrentCell.EditedFormattedValue, e.RowIndex)
      End If
      If e.CellName = "textCell" Then
            ChangeValue(False, Me.GcMultiRow1.CurrentCell.EditedFormattedValue, e.RowIndex)
      End If
    End Sub

    Private Sub ChangeValue(fromCombo As Boolean, value As Object, rowIndex As Integer)
      If fromCombo Then
            '根据value的值从数据表中对应的行。然后取出对应的TextCell应该的值,最后用GcMultiRow.SetValue(rowIndex, "textCell", newValue)方法改变TextCell的值。
      End If
      If Not fromCombo Then
            '根据value的值从数据表中对应的行。然后取出对应的ComboCell应该的值,最后用GcMultiRow.SetValue(rowIndex, "comboCell", newValue)方法改变ComboCell的值。
      End If
    End Sub
页: [1]
查看完整版本: ComboBoxCell和Textboxcell进行连锁反应的设定