小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

gridview排序

 行走在理想邊緣 2019-02-19

在GridView中可以通過兩種方式來指定模板列的標(biāo)題:
    1 通過HeaderText屬性指定:

<asp:TemplateField SortExpression="..." HeaderText="..." >
    <ItemTemplate>
             .......                                              
     </ItemTemplate>                                             
</asp:TemplateField>

 2 通過HeaderTemplate模板來指定

<asp:TemplateField SortExpression="...">
         <ItemTemplate>
                                                 ......
          </ItemTemplate>
           <HeaderTemplate>
                                                       ....
           </HeaderTemplate>                                              
 </asp:TemplateField>

 其中第一種方式會觸發(fā)Sorting事件,第二種方式不會。所以如果要想為模板列提供排序的,要采用第一種方式指定標(biāo)題。

 

一下是一個完整的列子

    1. 一個GridView

        首先: 將GridView的 AllowSorting 屬性 設(shè)置為 true。(允許點(diǎn)擊每一列的頭來排序)

        然后: 設(shè)置你想排序的列的 SortExpression="id" 為你要排序的數(shù)據(jù)源的相應(yīng)屬性。

<asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
        AutoGenerateColumns="False" onsorting="GridView1_Sorting">
        <Columns>
            <asp:TemplateField HeaderText="姓名" >
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("user.name") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="id" SortExpression="id">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
 

   2. 完成代碼

public partial class mastermanage_CarManage : System.Web.UI.Page
{
    /// <summary>
    /// 查詢出來的 car信息的list
    /// </summary>
    IEnumerable<Car> carList = null;

    UserDao userDao = new UserDao();

    protected void Page_Load(object sender, EventArgs e)
    {
        
        carList = userDao.getUserCar();
        this.GridView1.DataSource = carList;
        this.GridView1.DataBind();

    }
    
    /// <summary>
    /// 模板列排序的方法
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        // 從事件參數(shù)獲取排序數(shù)據(jù)列
        string sortExpression = e.SortExpression.ToString();
        // 假定為排序方向為“順序”
        string sortDirection = "ASC";
        // “ASC”與事件參數(shù)獲取到的排序方向進(jìn)行比較,進(jìn)行GridView排序方向參數(shù)的修改
        if (sortExpression == this.GridView1.Attributes["SortExpression"])
        {
            //獲得下一次的排序狀態(tài)
            sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
        }
        // 重新設(shè)定GridView排序數(shù)據(jù)列及排序方向
        this.GridView1.Attributes["SortExpression"] = sortExpression;
        this.GridView1.Attributes["SortDirection"] = sortDirection;
        this.BindGridView();


    }

    /// <summary>
    /// 這個 使用 linq幫定的
    /// </summary>
    private void BindGridView()
    {
        // 獲取GridView排序數(shù)據(jù)列及排序方向
        string sortExpression = this.GridView1.Attributes["SortExpression"];
        string sortDirection = this.GridView1.Attributes["SortDirection"];
        // 調(diào)用業(yè)務(wù)數(shù)據(jù)獲取方法
        UserDao userDao = new UserDao();

        // 根據(jù)GridView排序數(shù)據(jù)列及排序方向設(shè)置顯示的默認(rèn)數(shù)據(jù)視圖
        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
        {
            if (sortDirection.Equals("DESC"))
            {
                // l => l.id 這個應(yīng)該按照 sortExpression的內(nèi)容來寫
                //carList = from l in carList orderby l.id ascending select l;
                carList = carList.OrderBy(l => l.id);
            }
            else
            {
                //carList = from l in carList orderby l.id descending select l;
                carList = carList.OrderByDescending(l => l.id);
            }
            
        }
        // GridView綁定并顯示數(shù)據(jù) 
        this.GridView1.DataSource = carList.ToList<Car>();
        this.GridView1.DataBind();
    }

}

 

 

    /// <summary>
    /// 綁定到 DataTable 數(shù)據(jù)源 排序
    /// </summary>
 
    private void BindGridView()
    {
        // 獲取GridView排序數(shù)據(jù)列及排序方向
        string sortExpression = this.GridView1.Attributes["SortExpression"];
        string sortDirection = this.GridView1.Attributes["SortDirection"];
        // 調(diào)用業(yè)務(wù)數(shù)據(jù)獲取方法
        DataTable dtBind = this.getDB();
        // 根據(jù)GridView排序數(shù)據(jù)列及排序方向設(shè)置顯示的默認(rèn)數(shù)據(jù)視圖
        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
        {
            dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
        }
        // GridView綁定并顯示數(shù)據(jù)
        this.GridView1.DataSource = dtBind;
        this.GridView1.DataBind();
    }

    /// <summary>
    /// DataTable 數(shù)據(jù)源
    /// </summary>
    /// <returns></returns>
    private DataTable getDB()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("id");
        dt.Columns.Add("name");
        dt.Columns.Add("age");
        dt.Rows.Add(new object[] { "000001", "hekui"});
        dt.Rows.Add(new object[] { "000002", "zhangyu"});
        dt.Rows.Add(new object[] { "000003", "zhukundian"});
        dt.Rows.Add(new object[] { "000004", "liyang"});
        dt.Rows.Add(new object[] { "000005", "caili"});
        return dt;
    }
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多