更改 Infragistics 列中的排序类型

Change sorting type in Infragistics column

我在 Infragistics 列中排序时遇到问题。

我有一列数字(长型),但该列的数据类型是字符串。

所以现在它按无效的字符串排序。 如果我将列数据类型更改为 typeof(long),排序将停止工作。

您知道如何更改数值的排序类型吗?

已更新:

myCell.Column.DataType = typeof(string);

我正在使用 Infragistics4.Win.v12.2

如果列是绑定到数据源的列,则不能更改列的数据类型 属性。相反,您可以使用表达式初始值设定项在数据源中创建一个新列,该表达式初始值设定项允许您将 String 列转换为长列。然后在网格中您可以隐藏字符串列,让您的用户只看到用表达式创建的列。

假设您有一个以这种方式加载的 DataTable

DataTable dt = new DataTable();
sqlAdapter.Fill(dt);

现在您可以使用复制字符串列内容的表达式添加新的 long 类型列(我假设每一行都可以转换为 long)

dt.Columns.Add("NewLongCol", typeof(long), "StringCol");
yourGrid.DataSource = dt;

最后在网格的 InitializeLayout 事件处理程序中隐藏字符串列并将长列放置在其位置

private void yourGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
    UltraGridBand b = e.Layout.Bands[0];
    int pos = b.Columns["StringCol"].Header.VisiblePosition;
    b.Columns["StringCol"].Hidden = true;
    b.Columns["NewLongCol"].Header.VisiblePosition = pos;
}