需要对gridview排序进行解释

时间:2012-10-11 21:59:04

标签: c# sorting gridview

由于我是.NET新手,我需要解释以下代码。谁能给我解释一下呢?

protected void GridView1_Sort(object sender, GridViewSortEventArgs e)
{
    GridView grid = sender as GridView;

    DataTable dt = Session["List"] as DataTable;
    string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM");
    if (dt != null)
    {
        dt.DefaultView.Sort = e.SortExpression + " " +     GetSortDirection(e.SortExpression);
        grid.DataSource = Session["List"];
        grid.DataBind();
    }
}

1 个答案:

答案 0 :(得分:2)

虽然这通常不是"解释我的代码"网站...

Grid Sort方法:根据指定的排序表达式和方向对GridView控件进行排序。

protected void GridView1_Sort(object sender, GridViewSortEventArgs e)
{

将发件人投射到GridView。发件人始终是举起活动的控件。

GridView grid = sender as GridView;

GridView获取session的数据源,因为它存储在先前的请求中。请注意,所有对象都放置在每个页面生命周期的末尾,因此您需要将其保留在某个位置(Session,ViewState)或从rdbms再次加载它(推荐)。

DataTable dt = Session["List"] as DataTable;

以下行是多余的,可以删除

string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM");

我假设旧的方向存储在ViewState / Session中,并且GetSortDirection方法反转排序方向(DESC,如果它之前在该列上排序了ASC,依此类推)。

string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM");
if (dt != null)
{
    dt.DefaultView.Sort = e.SortExpression + " " +     GetSortDirection(e.SortExpression); // i assume that the old direction

再次在Session中存储它并对GridView

进行数据绑定
        grid.DataSource = Session["List"];
        grid.DataBind();
    }
}