GridView正反雙向排序

來源:互聯網
上載者:User

點擊GridView的標題,實現相應欄位的正向、逆向排序。

1. 首先設定GridView的屬性,觸發GridView的事件。

設定GridView的AllowSorting屬性為True, 設定各列的SortExpression為相應的欄位標題。

Code
          <Columns>
                <asp:BoundField DataField="PersonID" HeaderText="ID" SortExpression="ID" />
                <asp:BoundField DataField="PersonName" HeaderText="姓名" SortExpression="姓名" />
                <asp:BoundField DataField="GroupName" HeaderText="分組" SortExpression="分組" />
                <asp:BoundField DataField="CellPhone" HeaderText="手機" SortExpression="手機" />
                <asp:BoundField DataField="Remark" HeaderText="備忘" SortExpression="備忘" />
                <asp:CommandField ShowEditButton="True" />
                <asp:CommandField ShowDeleteButton="True" />
            </Columns>

觸發GridView的Sorting事件。

2. 後台代碼:

頁面載入:

Code
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //頁面載入時,是按照PersonID的順序排列
            ViewState["PersonID"] = "PersonID";
            ViewState["OrderDir"] = "asc";
            //綁定資料
            BindAll();
        }       
    }

綁定資料:

Code
 private void BindAll()
    {
        //讀取資料庫中的資料列表
        DataTable dt = dalPerson.SelectAll();
        
        DataView view = dt.DefaultView;
        string sort = (string)ViewState["PersonID"] + " " + (string)ViewState["OrderDir"];    
        view.Sort = sort ;
        GrdPerson.DataSource = view;
        //綁定資料
        GrdPerson.DataBind();
    }

Sorting事件:

Code
protected void GrdPerson_Sorting(object sender, GridViewSortEventArgs e)
    {

        string orderStr = "";
        switch (e.SortExpression)
        {
            case "ID": orderStr = "PersonID"; break;
            case "姓名": orderStr = "PersonName"; break;
            case "分組": orderStr = "GroupName"; break;
            case "手機": orderStr = "CellPhone"; break;
            case "備忘": orderStr = "Remark"; break;
        }
        ViewState["PersonID"] = orderStr;

        if (ViewState["OrderDir"].ToString() == "desc")
        {
            ViewState["OrderDir"] ="ASC";
        }
        else 
        {
            ViewState["OrderDir"] = "desc";//asc
        }

        BindAll();

    }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.