我在Infragistics列中排序时遇到问题。
我有一个带数字的列(长类型),但列数据类型是一个字符串。
所以现在它按一个无效的字符串排序。 如果我将列数据类型更改为typeof(long),则排序停止工作。
您知道如何更改数值的排序类型吗?
更新:
myCell.Column.DataType = typeof(string);
我正在使用Infragistics4.Win.v12.2
答案 0 :(得分:0)
如果列是绑定到DataSource的列,则无法更改列的DataType属性。相反,您可以使用表达式初始值设定项在数据源中创建一个新列,该表达式允许您转换长列中的String列。然后在网格中,您可以隐藏字符串列,并让您的用户只能看到使用表达式创建的列。
假设您以这种方式加载了DataTable
DataTable dt = new DataTable();
sqlAdapter.Fill(dt);
现在,您可以使用复制String列内容的Expression添加一个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;
}