Свойство DataSource теряется во время обходов. Вот почему DataTable dtSortTable = gvMeldingen.DataSource as DataTable;
равно нулю, а DataView dvSortedView = new DataView(dtSortTable);
недопустимо.
Когда вы нажимаете гиперссылку сортировки в таблице данных, вы запускаете обратную передачу от клиента к серверу. Затем ASP.NET создает страницу ответа, используя постоянные данные, такие как ViewState и другие.
Свойство DataSource не является частью постоянного состояния между приемом в оба конца, поэтому его значение теряется.
Решение требует вашего источника данных, как показано ниже:
protected void OtherGridView_Sorting(object sender, GridViewSortEventArgs e)
{
var SortExpression = e.SortExpression + " " + getSortDirectionString(e.SortDirection);
gvMeldingen.DataSource = ... // Requery the Data using the new sort expression above
gvMeldingen.DataBind();
}
Другим решением является установка источника данных каждый раз в событии Page_Load (не рекомендуется)