如何在DataGridView中进行排序?

时间:2015-09-11 20:25:53

标签: c# sorting header

我使用Entity Framework从base获取数据。我不使用数据绑定源。我用这个:

var caly = from m in stan.magazyn
                       from g in stan.gdzie
                       from p in stan.pracownik
                       where m.Gdzie_Jest == g.ID_Miasta
                       where m.Kto_Wprowadzil == p.ID_Pracownika
                       orderby m.Marka
                       select new { m.ID, m.Marka, m.Model, m.IMEI, m.Kolor, m.Od_Kogo, Sklep = g.Nazwa, m.Data_Wprowadzenia, m.Cena_Kupna, Dodał = p.login, m.Info };
            dataGridView1.DataSource = caly.ToList();

如果我在datagridview中点击标题,我想要那个数据排序。但是不要工作。我应该做什么?我使用linq托盘,但不工作,它是一样的。

1 个答案:

答案 0 :(得分:0)

您需要向Datagrid添加排序方法,并为排序设置表达式。然后在设置排序表达式并重新排序数据后重新绑定datagrid。您可以设置datagrid以按每列的值进行排序,并在需要再次排序时调用此方法。

执行以下操作:

为网格的SortCommand事件创建一个事件处理程序。在方法中: 1.从DataGridSortCommandEventArgs参数的SortExpression属性中获取排序键(在Sort表达式中设置的值)。 2.对数据进行排序。 3.重新绑定数据源中的数据。

示例:

private void dataGridView1_SortCommand(object source, 
System.Web.UI.WebControls.dataGridView1SortCommandEventArgs e)
{
   dataGridView1.Sort = e.SortExpression;
   dataGridView1.DataBind();
}