Поместите свой 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
Как вы заселить GridView в первую очередь? DataTable может быть проще генерировать из источника данных, чем из GridView. –
Как насчет привязки таблицы к gridview? – Ruben
хорошо, я собирался предложить вам построить свой «DataSource» в качестве ответа на ваш последний вопрос! ! – V4Vendetta