CODE-常用程式碼片段-GridView Sorting

摘要:CODE-常用程式碼片段-GridView Sorting


    private string GetSortDirection()
    {
        switch (GridViewSortDirection)
        {
            case "ASC":
                GridViewSortDirection = "DESC";
                break;
            case "DESC":
                GridViewSortDirection = "ASC";
                break;
        }
        return GridViewSortDirection;
    }
    private string GridViewSortDirection  //排序方式
    {
        get { return (String)ViewState["SortDirection"] ?? "ASC"; }
        set { ViewState["SortDirection"] = value; }
    }
    private DataTable cvTbl2
    {
        get { return (DataTable)ViewState["cvTbl2"]; }
        set { ViewState["cvTbl2"] = value; }
    }
    private string GridViewSortExpression //排序欄位
    {
        get { return (String)ViewState["SortExpression"] ?? string.Empty; }
        set { ViewState["SortExpression"] = value; }
    }

    private DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
    {
        if (dataTable != null)
        {
            DataView dataView = new DataView(dataTable);
            //中文排序
            dataView.Table.Locale = new System.Globalization.CultureInfo("zh-TW");
            if (GridViewSortExpression != string.Empty)
            {
                if (isPageIndexChanging)
                { dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection); }
                else
                { dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GetSortDirection()); }
            }
            return dataView;
        }
        else
        { return new DataView(); }
    }
//GridView 排序方法
    protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
    {
        GridViewSortExpression = e.SortExpression;
        int pageIndex = gvabatmqc.PageIndex;
        GridView.DataSource = SortDataTable(cvTbl2, false);
        GridView.DataBind();
        GridView.PageIndex = pageIndex;
    }
//動作
    protected void Button1_Click(object sender, EventArgs e)
    {
        DataTable dt=new DataTable();
        cvTbl2 = dt;
        gvabatmqc.DataSource = cvTbl2;
        gvabatmqc.DataBind();
    }