请通过单击 asp.net 中的标题帮助我在网格视图中对数据进行排序。我使用 linq 将数据绑定到 gridview。请帮我。
问问题
1203 次
3 回答
0
试试这个排序......
protected void RadgvData_SortCommand(object sender, GridSortCommandEventArgs e)
{
GridTableView tableView = e.Item.OwnerTableView;
e.Canceled = true;
GridSortExpression expression = new GridSortExpression();
expression.FieldName = e.SortExpression;
if (tableView.SortExpressions.Count == 0 || tableView.SortExpressions[0].FieldName != e.SortExpression)
{
expression.SortOrder = GridSortOrder.Descending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Descending)
{
expression.SortOrder = GridSortOrder.Ascending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Ascending)
{
expression.SortOrder = GridSortOrder.Descending;
}
tableView.SortExpressions.AddSortExpression(expression);
RadgvData.Rebind();
}
于 2013-04-16T09:33:38.927 回答
0
你可以很容易地做到这一点。
因此,假设您有一个 GridView,您在服务器端将数据源分配给该 GridView。
您可以使用GridView_Sorting
事件,如下所示:
首先,将当前应用的排序保存在某处。因为,您需要知道,是否必须按升序或降序排序。如下所示。
public SortDirection CurrentSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection) ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
然后sorting
在 GridView 的事件中使用这个属性:
protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (CurrentSortDirection== SortDirection.Ascending)
{
CurrentSortDirection = SortDirection.Descending;
var myDataSource = GetDataThroughLinq()
.OrderByDescending(s=>s.Id)
.ToList();
GridView1.DataSource = myDataSource;
GridView1.DataBind();
}
else
{
CurrentSortDirection = SortDirection.Ascending;
var myDataSource = GetDataThroughLinq()
.OrderBy(s=>s.Id)
.ToList();
GridView1.DataSource = myDataSource;
GridView1.DataBind();
}
}
于 2013-03-24T07:06:10.243 回答
0
您可以直接为gridview选择一个数据源,它在自动格式下方的gridview任务中,选择datasouce后提供了更多选项,它也包括排序,分页和选择,通过单击每个标题,您将获得根据排序的数据对它
于 2013-03-24T10:59:00.757 回答