更改 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;
}
我在 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;
}