C# 排序后索引丢失
我必须为DevExpress gridview的特定行添加颜色。存在一个事件行样式(对象发送者,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)。它工作正常,但是如果我对数据进行排序,好的索引就会丢失。如何解决这个问题?如何访问已排序的数据,因为我只能访问数据源。非常感谢。 以下代码仅适用于未排序的数据:C# 排序后索引丢失,c#,gridview,sorting,C#,Gridview,Sorting,我必须为DevExpress gridview的特定行添加颜色。存在一个事件行样式(对象发送者,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)。它工作正常,但是如果我对数据进行排序,好的索引就会丢失。如何解决这个问题?如何访问已排序的数据,因为我只能访问数据源。非常感谢。 以下代码仅适用于未排序的数据: private void dataGridView1_RowStyle(object sender, DevExpress.XtraGri
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
{
}
}
要为数据网格设置AlternatingRowsDefaultCellStyle 例: this.myDataGrid.AlternatingRowsDefaultCellStyle=dataGridViewCellStyle14
这是假设您正在交替行颜色。很抱歉即使在排序时,也应保留您的设置,除非您有自己的排序功能 要为数据网格设置AlternatingRowsDefaultCellStyle 例: this.myDataGrid.AlternatingRowsDefaultCellStyle=dataGridViewCellStyle14
这是假设您正在交替行颜色。很抱歉即使在排序时,也应保留您的设置,除非您有自己的排序功能 看看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;
}
}
}
正如您所注意到的,它们访问列上的网格视图数据,而不是直接访问数据源
希望这能有所帮助。看看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;
}
}
}
正如您所注意到的,它们访问列上的网格视图数据,而不是直接访问数据源
希望这有帮助。您可以采用Konstantinos描述的方法或使用
gridView.GetDataRow(e.RowHandle)["Lating"]
访问基础数据集。您可以采用Konstantinos描述的方法或使用
gridView.GetDataRow(e.RowHandle)["Lating"]
访问基础数据集。我不明白您所说的“好的索引丢失”是什么意思。您能澄清一下吗?谢谢。我有4行,值为1,4,2,3,索引为0,1,2,3。排序后的值为1,2,3,4,索引为0,1,2,3。如果我通过索引从数据源中获取值,我将得到不正确的值。我假设通过使用视图数据而不是数据源,您将得到正确的结果?我不理解您所说的“好的索引丢失”是什么意思,您能澄清一下吗?谢谢。我有4行,值为1,4,2,3,索引为0,1,2,3。排序后的值为1,2,3,4,索引为0,1,2,3。如果我通过索引从数据源获取值,我会得到不正确的值。我假设通过使用视图数据而不是数据源,你会得到正确的结果?我不认为他要求这样做,而是基于拉丁字段的自定义着色。我认为他不要求这样做,而是基于拉丁字段的自定义着色。