DevExpress XtraGrid GridView的CellValueChanged事件的问题

修改Cell的Value后,并不能即时的更改数据源,需要离开焦点。

 

解决方法是,绑定一个RepositoryItem到Columns,调用这个Item的EditValueChanged事件

代码如下

 

      RepositoryItemTextEdit countTxt = new RepositoryItemTextEdit();

      countTxt.AutoHeight = false;
       countTxt.EditValueChanged += new EventHandler(countTxt_EditValueChanged); //注册事件
      GridView1.Columns["ChargeCount"].ColumnEdit = countTxt; //绑定RepositoryItem到Columns

 

        void countTxt_EditValueChanged(object sender, EventArgs e)
        {
          GridView1.PostEditor(); //关键,将GridView的值提交到数据源
        }

 

如果要获取RepositoryItem的值,可以在事件中这样写

                    TextEdit txt = sender as TextEdit;
                    string value = txt.EditValue.ToString();

 

具体转换成什么样的BaseEdit,可以跟踪事件,查看sender的类型

posted @ 2012-05-08 18:37  逍遥子k  阅读(2349)  评论(0编辑  收藏  举报