2011-05-10 2 views
2

Я хочу преобразовать свой GridView в DataTable. Примечание. В GridView отсутствует DataSource! Я хочу сортировать DataTable и возвращать его в GridView, возможно ли это? Важно то, что мой GridView должен быть отсортирован.Как преобразовать GridView в DataTable и отсортировать DataTable?

Заранее спасибо.

+0

Как вы заселить GridView в первую очередь? DataTable может быть проще генерировать из источника данных, чем из GridView. –

+0

Как насчет привязки таблицы к gridview? – Ruben

+0

хорошо, я собирался предложить вам построить свой «DataSource» в качестве ответа на ваш последний вопрос! ! – V4Vendetta

ответ

3

Поместите свой DataTable в ViewState, когда вы связываетесь в первый раз.

gridView1.DataBind(); 
ViewState["dtbl"] = YourDataTable 

, а затем сделать, как ...

protected void ComponentGridView_Sorting(object sender, GridViewSortEventArgs e) 
{ 
    DataTable dataTable = ViewState["dtbl"] as DataTable; 

    if (dataTable != null) 
    { 
     DataView dataView = new DataView(dataTable); 
     dataView.Sort = e.SortExpression + " " + ConvertSortDirection(e.SortDirection); 

     ComponentGridView.DataSource = dataView; 
     ComponentGridView.DataBind(); 
    } 
} 

private string ConvertSortDirection(SortDirection sortDirection) 
{ 
    string newSortDirection = String.Empty; 

    switch (sortDirection) 
    { 
     case SortDirection.Ascending: 
      newSortDirection = "ASC"; 
      break; 

     case SortDirection.Descending: 
      newSortDirection = "DESC"; 
      break; 
    } 

    return newSortDirection; 
} 

Также обратите внимание на эту статью MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx

+0

Мухаммад, спасибо, я искал его в течение нескольких дней. Задавался один и тот же вопрос в различных формах. Это работает! – SamekaTV

+0

Это здорово! но будет ли он делать сайт медленным, поскольку у меня много данных в gridview? – lawphotog

+0

yah, насколько больше данных в viewstate, это будет влиять на производительность –

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