Asp.net:使用gridview和objectDataSource进行排序

时间:2011-02-02 15:55:42

标签: asp.net sorting objectdatasource

我如何使用ObjectDataSource绑定的数据在gridView中进行排序?

2 个答案:

答案 0 :(得分:1)

Here是之前已回答的问题。

对于实际排序,您可以调用

collectionOfObjects.OrderBy(x => x.PropertyToSortOn);

您可以使用开关根据通过args传递给方法的内容来更改要排序的内容。所以看起来会更像这样

switch(propertyName)
{
  case "property1":
    collectionOfObjects.OrderBy(x => x.PropertyToSortOn);
    break;
  case "property2":
    collectionOfObjects.OrderBy(x => x.OtherPropertyToSortOn);
    break;

  ...

}

希望这有帮助! :)

答案 1 :(得分:0)

如果您更容易,为什么不尝试从商店程序或查询中对其进行排序。 也许不是最佳解决方案,但它可能更容易。

修改

如果您想使用gridview控件进行编程,请查看以下代码:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }


        protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
        {
            DataTable dtSortTable = GridView1.DataSource as DataTable;
            if (dtSortTable != null)
            {
                DataView dvSortedView = new DataView(dtSortTable);
                dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString(e.SortDirection);
                GridView1.DataSource = dvSortedView;
                GridView1.DataBind();
            }
        }

        private string getSortDirectionString(SortDirection sortDireciton)
        {
             string newSortDirection = String.Empty;
             if (sortDireciton == SortDirection.Ascending)
            {
                newSortDirection = "ASC";
            }
            else
            {
                newSortDirection = "DESC";
            }
            return newSortDirection;
        }