“System.StackOverflowException” 在对 GridView 进行排序时
本文关键字:排序 GridView 在对 System StackOverflowException | 更新日期: 2023-09-27 17:55:39
当我尝试对 GridView 进行排序时,系统会返回以下错误消息:
网格视图排序 类型未处理的异常 "System.StackOverflowException"发生在System.Web中.dll
这是代码,"Melder"是要排序的列的名称。
gvOutlookMeldingen.Sort("Melder", SortDirection.Ascending);
您可能在 gvOutlookMeldingen_Sorting
中调用 Sort()
,这将调用 gvOutlookMeldingen_Sorting
并再次Sort()
,从而生成一个循环。
在 Sorting
事件上,您需要调用更改数据源的函数并再次执行查询。或者,如果它是自动绑定的,则无需执行任何操作。
资源
- 排序文档
首次绑定时将数据表置于视图状态
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