2013-10-26 2 views
0

У меня есть DataGridView, что я добавляю детали через DataTable Это элементы, считанных из файла XML и внутри этого XML-файла, эти элементы не сортируются и я хочу, чтобы отсортировать это, прежде чем добавить в мой DataGridViewСортировка DataGridView в соответствии конкретный столбец, прежде чем добавить

private void UpdateDataGdirView(List<Vendor> list) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Column1", System.Type.GetType("System.Boolean")); 
    dt.Columns.Add("Column2", typeof(string)); 
    dt.Columns.Add("Column3", System.Type.GetType("System.Boolean")); 
    dt.Columns.Add("Column4", System.Type.GetType("System.Boolean")); 
    dt.Columns.Add("Column5", System.Type.GetType("System.Boolean")); 
    dt.Columns.Add("Column6", System.Type.GetType("System.Boolean")); 
    DataRow dr; 

    foreach (Vendor vendor in list) 
    { 
     dr = dt.NewRow(); 
     dr["Column1"] = vendor.IsVendorChecked; 
     dr["Column2"] = vendor.Number; 
     dr["Column3"] = vendor.Name; 
     dr["Column4"] = vendor.Size; 
     dr["Column5"] = vendor.Path; 
     dr["Column6"] = vendor.Path2; 
     dt.Rows.Add(dr); 
    } 

    dataGridView1.AllowUserToAddRows = false; 
    dataGridView1.AllowUserToDeleteRows = false; 
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 
    this.Invoke((MethodInvoker)delegate { dataGridView1.DataSource = dt; }); 
} 

ответ

2

вы можете использовать dt.defaultview.sort = "имя_столбца возр/desc " , а затем привязать данные к месту назначения.

1

Думаю, для этого вам следует использовать DataView. Как:

 DataTable orders = dataSet.Tables["SalesOrderHeader"]; 

     EnumerableRowCollection<DataRow> query = 
      from order in orders.AsEnumerable() 
      orderby order.Field<decimal>("TotalDue") 
      select order; 

     DataView view = query.AsDataView(); 

     bindingSource1.DataSource = view; 

Следуйте по этой ссылке: Query on DataView

ИЛИ
Вы можете использовать как:

 DataTable orders = dataSet.Tables["SalesOrderHeader"]; 
     DataView dv = new DataView(orders); 
     dv.Sort = "TotalDue"; 
     dataGridView1.DataSource = dv; 
+0

Что означает «SalesOrderHeader» и «TotalDue»? – user1860934

+0

Это просто пример, пожалуйста, следуйте по ссылке, которую я разместил. – BhushanK

+0

BTW «SalesOrderHeader» - это имя таблицы в dataSet, а «TotalDue» - это имя столбца таблицы «SalesOrderHeader». – BhushanK

Смежные вопросы