当前位置:  开发笔记 > 小程序 > 正文

DevExpress XtraGrid自定义RowCellStyle事件处理程序和列排序问题

如何解决《DevExpressXtraGrid自定义RowCellStyle事件处理程序和列排序问题》经验,为你挑选了1个好方法。

我的xtraGrid有一个自定义样式eventlistener:

  FooGridView.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(FooGridView_RowCellStyle);


  private void FooGridView_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {

            DevExpress.XtraGrid.Views.Grid.GridView vw = (sender as DevExpress.XtraGrid.Views.Grid.GridView);
            try
            {
                DataRow DR = vw.GetDataRow(vw.GetRowHandle(e.RowHandle));

                if (**some condition based on one or more values in the DataRow**)
                {
                    e.Appearance.Font = new System.Drawing.Font(e.Appearance.Font, System.Drawing.FontStyle.Strikeout);
                    e.Appearance.ForeColor = Color.LightGray;
                }
                else
                {
                    e.Appearance.Font = new System.Drawing.Font(e.Appearance.Font, System.Drawing.FontStyle.Regular);
                    e.Appearance.ForeColor = Color.Black;
                }

            }
            catch (Exception ex) { }
        }

单击网格列标题以占用网格后,格式最终会在排序重新排序行之后应用于错误的行.如何解决这个问题?



1> Armbrat..:

你正在把这个e.RowHandle给你并转换成一个DataSourceHandle.然后,你打电话GetDataRowDataSourceHandle.

但是,GetDataRow接受行句柄,而不是数据源句柄.试试这个:

DataRow DR = vw.GetDataRow(e.RowHandle);

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有