怎么知道cxgrid某一列当前的显示值,比如某一列显示“0001”,通过字段找它的值是“0001”,后来改它为“0002”,光标不移开那一列,此时通过字段去取值肯定还是“0001”,但是我想得到“0002”这个值(即显示的值),要怎样才能取得到?

解决方案 »

  1.   

    这列是lookupcombox列,显示的编号,实际是ID
      

  2.   

    Contvew_M.DataController.GetDisplayText(Contvew_M.Controller.SelectedRows[0].RecordIndex,Contvew_M.DataController.GetItemByFieldName('Created_by').Index);
    这样试试,应该可以的
      

  3.   

    showMessage(cxGrid1DBTableView1DBColumn.FocusedCellViewInfo.Value);
    你试试这个,我试了一下好像可以!
      

  4.   

    del_kouzw 
    你的也不行,这些都试了,都不是想要的结果
    其实我只想要当前某列所显示的值
    按道理这个应该好得到,但就是找不到答案
    请各位继续帮忙!
      

  5.   

    试了啊,是原值
    况且你这个是字段值,不是显示值
    你把此列设为lookupcombox试下
      

  6.   

    我分别用sqlserver与oracle数据库进行了测试,均没有问题.
    不知道你是用的什么数据库.
      

  7.   

    不好意思
    刚才说错啊
    以为是del_kouzw  zxf_feng 兄
    我是在字段的onchange里试
    因为我想在它onchange里做一些事情 
    不过不管在哪里我都是想取它的显示值
      

  8.   

    zxf_feng   兄 
    你到此字段的onchange里试下
      

  9.   

    我是在一个按钮中进行的测试
    在onchange中确如你所说.
      

  10.   

    如果有是CX的某个其它控件,比如tcxdblookupcombox
    则在它的字段的onchange里这样得到它的当前显示值:
    lkcbbSOURCE_ORG.DataBinding.DisplayValue
    但是在CXGRID中得到某列的显示值(在它的字段的onchange事件中)就不知道怎样得到!
      

  11.   

    你要实现的功能一般在BeforePost或者AfterInsert事件中可以搞定,而不是想办法去得到以前的那个值。
    或者直接设置编辑框的掩码。
      

  12.   

    我这列是lookupcombox
    关联数据库的字段是ID
    显示的是Code
    我主要是想在这里输入数据后,比如“0002”
    用SQL语句做:select id from table where Code='0002' or name='0002'这样搜索功能
    因为lookupcombox是不触发settext事件的,只能在onchange里搜索
    所以才会有上面的提问
    如果不这样
    还有什么更好的办法吗?
    请赐教!
      

  13.   

    cxGrid的LockupCombobox本来就是自动匹配的啊,你输入的时候他会自己找对应的项啊,还要自动带出来什么东西?
      

  14.   

    要么都从后面的DATASET上改和读,要么都从CXGRID上改和读.否则可能存在CXGRID未及时同步DATASET中的已经修数据.
      

  15.   

    一定要从cxgrid上读
    从dataset上读是修改后的值,我要知道当前输入的值
      

  16.   

    楼主真是不屈不挠啊
    可以访问某列的Properties属性的EditValue试试。
      

  17.   

    LookupComboBox - How to obtain values from other columns in the dropdown lookup list
    http://www.devexpress.com/Support/Center/KB/p/A506.aspx
      

  18.   

    不是同一东东
    cxLookupComboBox本来就可以!
      

  19.   

    把cxgrid属性中的filter的AUTODATASETFILTER 改为TRUE就OK啦
      

  20.   

    SetLength(ls_Value,AEdit.GetTextLen);
    AEdit.GetTextBuf(PChar(ls_Value),AEdit.GetTextLen+1);
      

  21.   

    试试:cxGrid1DBTableView1DBColumn.Controller.EditingController.Edit.EditValue