c# - 如何在 GridEX Janus 中设置属性 SortOrder - C#
问题描述
我需要SortOrder
在GridEx中设置属性,而这个属性只有get
.
我能做些什么?
编码:
private void M_Grid_ColumnHeaderClick(object sender, Janus.Windows.GridEX.ColumnActionEventArgs e)
{
if (e.Column.DataMember == "Filed1")
{
var list = m_Grid.DataSource;
if (e.Column.SortOrder == Janus.Windows.GridEX.SortOrder.Descending)
{
list = list.OrderBy(p => p.ParticipationDate).ToList();
e.Column.SortOrder = Janus.Windows.GridEX.SortIndicator.Ascending;// it's not good
}
else
{
list = list.OrderByDescending(p => p.ParticipationDate).ToList();
e.Column.SortOrder = Janus.Windows.GridEX.SortIndicator.Descending;// it's not good
}
m_Grid.DataSource = list;
}
}
解决方案
经过大量实验并得到正确答案。
如果您想按任何其他值而不是默认值对特定字段进行排序,请使用属性:SortComparer
并实现类的Compare()
功能IComparer
例如,我所做的是:
在组件的负载上写:
m_Grid.RootTable.Columns["Field1"].SortComparer = new Field1Sort();
要实现的类:
public class Field1Sort: IComparer
{
public Field1Sort()
{
}
public int Compare(object x, object y)
{
var xString = (string)x;
var yString = (string)y;
var date1 = xString.Substring(0, 10).ToDateTime();
var date2 = yString.Substring(0, 10).ToDateTime();
if (date1 < date2)
return -1;
if (date1 > date2)
return 1;
else
return 0;
}
}
推荐阅读
- javascript - 我的提交按钮没有将我发送到下一页
- reactjs - 如何在全局错误上触发 Sentry.io ErrorBoundary 回退
- kotlin - 背压在 flatMap 和多个 observeOn 的链中不受尊重
- python - 如何将元素放在一行中的np数组中的特定位置
- css - 当字体中缺少给定的字形、字符、符号、dingbat 等时,Web 浏览器如何处理这种情况?
- python - 在某个 X 刻度值处开始水平 pyqtgraph 的 LinearRegionItem
- assembly - 错误 A2105:预期:指令或指令 - MASM
- java - 如何在android开源项目中找到特定屏幕的代码?
- javascript - 使用 Express.js 和 TypeScript 从 Node.js 下载文件
- python - 如何获取元组元组的第一项