对 DataGridView ComboBox 值进行排序
Sorting DataGridView ComboBox Values
我一直在尝试通过循环对我当前添加到 comboboxcell 的一些值进行排序,并且我将排序与数据视图一起使用,但这只是对值的第 1 个数字进行排序而没有考虑其余的数字。
示例代码:
结果:
我要获取的是以下示例:1、10、100、200,而不是 1、11、110、2、20、23、3 等等。如果有人有任何想法。
谢谢
您可以使用 LINQ:
DataTable sortedByValue = sortedDT.AsEnumerable()
.OrderBy(r=> r.Field<decimal>("MATERIALPROFILE"))
.CopyToDataTable();
您可以使用 LINQ 对其进行排序并获取“MATERIALPROFILE”列表。
这里有一个设置combobox数据dousrce的简单demo。
List<decimal> datasource = dt.AsEnumerable()
.OrderBy(r => r.Field<decimal>("MATERIALPROFILE"))
.Select(r => r.Field<decimal>("MATERIALPROFILE"))
.ToList();
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = datasource;
dataGridView1.Columns.Add(combo);
更新:
修改OrderBy子句,如:
.OrderBy(r => Convert.ToInt32(r.Field<string>("FieldName").Split('x')[0].Trim()))
我一直在尝试通过循环对我当前添加到 comboboxcell 的一些值进行排序,并且我将排序与数据视图一起使用,但这只是对值的第 1 个数字进行排序而没有考虑其余的数字。
示例代码:
结果:
我要获取的是以下示例:1、10、100、200,而不是 1、11、110、2、20、23、3 等等。如果有人有任何想法。
谢谢
您可以使用 LINQ:
DataTable sortedByValue = sortedDT.AsEnumerable()
.OrderBy(r=> r.Field<decimal>("MATERIALPROFILE"))
.CopyToDataTable();
您可以使用 LINQ 对其进行排序并获取“MATERIALPROFILE”列表。
这里有一个设置combobox数据dousrce的简单demo。
List<decimal> datasource = dt.AsEnumerable()
.OrderBy(r => r.Field<decimal>("MATERIALPROFILE"))
.Select(r => r.Field<decimal>("MATERIALPROFILE"))
.ToList();
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = datasource;
dataGridView1.Columns.Add(combo);
更新:
修改OrderBy子句,如:
.OrderBy(r => Convert.ToInt32(r.Field<string>("FieldName").Split('x')[0].Trim()))