我有一个数据网格视图,我从一个sql表绑定,在那个dv我有这些属性:Id,Name和Price。当我将名称列的SortMode设置为自动并且我点击此列的标题时,我可以根据名称的第一个字母对此dv进行排序,这样我就可以根据他们的第一个字母(Acumulator,Boat,可口可乐,引擎等)。

如果没有单击列Name的标题,有没有办法发生这种事情。我正在寻找一些代码,当表单加载时,它将完成这项工作。

有帮助吗?

解决方案

DataGridView上有一个名为“Sort”的方法:

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

这将以编程方式对您的datagridview进行排序。

其他提示

dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);

您可以通过对返回的数据进行排序来控制从SQL数据库返回的数据:

orderby [Name]

如果从应用程序执行SQL查询,请订购返回的数据。例如,创建一个调用过程或执行SQL的函数,并为其提供一个获取orderby条件的参数。因为如果您订购了从数据库返回的数据,它将消耗时间,但是它会被执行,因为它表示您希望它不是从您希望在运行时订购的UI中进行排序,因此在执行SQL时对其进行排序查询。

这个更简单:)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;

使用 Datatable.Default.Sort 属性,然后将其绑定到datagridview。

执行此操作的最佳方法是在绑定数据源之前对列表进行排序。

cars = cars.OrderBy(o => o.year).ThenBy(o => o.color).ToList(); adgCars.DataSource = cars;

抱歉我的英语不好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top