我必须为DevExpress gridview的特定行添加颜色。有一个事件RowStyle(对象发送者,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)。它运行正常但如果我对数据进行排序,那么好的索引就会丢失。如何解决这个问题呢?如何访问已排序的数据,因为我只能访问数据源。谢谢。 以下代码仅适用于未排序的数据:
private void dataGridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
try
{
if ((int)((DataTable)gridControl1.DataSource).Rows[e.RowHandle]["Lating"] > 0)
{
e.Appearance.BackColor = Color.Red;
}
}
catch
{
}
}
答案 0 :(得分:1)
查看DevEx文档中提供的示例:
using DevExpress.XtraGrid.Views.Grid;
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
GridView View = sender as GridView;
if(e.RowHandle >= 0) {
string category = View.GetRowCellDisplayText(e.RowHandle, View.Columns["Category"]);
if(category == "Beverages") {
e.Appearance.BackColor = Color.Salmon;
e.Appearance.BackColor2 = Color.SeaShell;
}
}
}
您可以注意到他们访问列上的网格视图数据而不是直接访问数据源。
希望这有帮助。
答案 1 :(得分:0)
您想为数据网格设置AlternatingRowsDefaultCellStyle。
例如: this.myDataGrid.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle14;
这假设您正在进行交替的行颜色。抱歉。除非您已经创建了自己的排序功能,否则即使在排序中也应保留您的设置。
答案 2 :(得分:0)
您可以采用Konstantinos描述的方法或使用
gridView.GetDataRow(e.RowHandle)["Lating"]
访问基础数据集。