gridview排序

天天见闻 天天见闻 2024-04-25 科技 阅读: 2
摘要: 在中可以通过两种方式来指定模板列的标题:通过属性指定:通过模板来指定其中第一种方式会触发事件,第二种方式不会。所以如果要想为模板列提供排序的,要采用第一种方式指定标题。一下是一个完整的列子true。(允许点击每一列的头来排序)为你要排序的数据源的相应属性。完成代码

在中可以通过两种方式来指定模板列的标题:

1 通过属性指定:


    
             .......                                              
                                                  

2 通过模板来指定


         
                                                 ......
          
           
                                                       ....
                                                         
 

其中第一种方式会触发事件,第二种方式不会。所以如果要想为模板列提供排序的,要采用第一种方式指定标题。

一下是一个完整的列子

1. 一个

首先: 将的 属性 设置为 true。(允许点击每一列的头来排序)

然后: 设置你想排序的列的 ="id" 为你要排序的数据源的相应属性。


        
            
                
                    
                
            
            
                
                    
                
            
        
    

2. 完成代码

public partial class mastermanage_CarManage : System.Web.UI.Page
{
    /// 
    /// 查询出来的 car信息的list
    /// 
    IEnumerable carList = null;
    UserDao userDao = new UserDao();
    protected void Page_Load(object sender, EventArgs e)
    {
        
        carList = userDao.getUserCar();
        this.GridView1.DataSource = carList;
        this.GridView1.DataBind();
    }
    
    /// 
    /// 模板列排序的方法
    /// 
    /// 
    /// 
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        // 从事件参数获取排序数据列
        string sortExpression = e.SortExpression.ToString();
        // 假定为排序方向为“顺序”
        string sortDirection = "ASC";
        // “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
        if (sortExpression == this.GridView1.Attributes["SortExpression"])
        {
            //获得下一次的排序状态
            sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
        }
        // 重新设定GridView排序数据列及排序方向
        this.GridView1.Attributes["SortExpression"] = sortExpression;
        this.GridView1.Attributes["SortDirection"] = sortDirection;
        this.BindGridView();
    }
    /// 
    /// 这个 使用 linq帮定的
    /// 
    private void BindGridView()
    {
        // 获取GridView排序数据列及排序方向
        string sortExpression = this.GridView1.Attributes["SortExpression"];
        string sortDirection = this.GridView1.Attributes["SortDirection"];
        // 调用业务数据获取方法
        UserDao userDao = new UserDao();
        // 根据GridView排序数据列及排序方向设置显示的默认数据视图
        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
        {
            if (sortDirection.Equals("DESC"))
            {
                // l => l.id 这个应该按照 sortExpression的内容来写
                //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绑定并显示数据 
        this.GridView1.DataSource = carList.ToList();
        this.GridView1.DataBind();
    }
}

    /// 
    /// 绑定到 DataTable 数据源 排序
    /// 
 
    private void BindGridView()
    {
        // **GridView排序数据列及排序方向
        string sortExpression = this.GridView1.Attributes["SortExpression"];
        string sortDirection = this.GridView1.Attributes["SortDirection"];
        // 调用业务数据**方法
        DataTable dtBind = this.getDB();
        // 根据GridView排序数据列及排序方向设置显示的默认数据视图
        if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
        {
            dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
        }
        // GridView绑定并显示数据
        this.GridView1.DataSource = dtBind;
        this.GridView1.DataBind();
    }
    /// 
    /// DataTable 数据源
    /// 
    /// 
    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;
    }

其他相关
欧120:欧奈尔RPS120强度线

欧120:欧奈尔RPS120强度线

作者: 天天见闻 时间:2024-05-09 阅读: 2
1,温斯坦强度线----反应了个股在最近N根K线范围内所处的相对位置高低。2,欧奈尔RPS强度线----反应了个股在最近N根K线范围内整体涨跌幅在全市场中所处的位置。温斯坦强度线决定绝对强度,欧奈尔强度线决定相对强度。...
承插型盘扣件钢管支架施工简介

承插型盘扣件钢管支架施工简介

作者: 天天见闻 时间:2024-04-21 阅读: 2
建筑施工承插型盘扣件钢管支架安全技术规程》2)连墙件应设置在有水平杆的盘扣节点旁,连接点至盘扣节点距离不应大于300mm;采用钢管扣件作连墙件杆时,连墙杆应采用直角扣件与立杆链接;...
第一章断组、断组方法及断组在实战中的用法

第一章断组、断组方法及断组在实战中的用法

作者: 天天见闻 时间:2024-04-21 阅读: 2
所谓断组,就是预测奖号不会在所有3个段中同时出号。一、断组方法:我在自己的博客中也跟大家介绍了2种方法。这里我介绍我自己常用的2个断组方法,仅供参考。(一)“常用对码断组法”:举例“常用对码断组法”:举例“金9对码断组法”:...
EXW/FCA/FAS/FOB/CFR/CIF/CPT/CIP/DAP/DPU/

EXW/FCA/FAS/FOB/CFR/CIF/CPT/CIP/DAP/DPU/

作者: 天天见闻 时间:2024-04-17 阅读: 2
国际贸易术语共有11种,分别是:EXW、FCA、FAS、FOB、CFR、CIF、CPT、CIP、DAP、DPU、DDP。...
10款免费安卓文件管理器横评,除了ES文件浏览器真没一个能打的

10款免费安卓文件管理器横评,除了ES文件浏览器真没一个能打的

作者: 天天见闻 时间:2023-12-20 阅读: 58
文件浏览/管理器是每个Android手机用户离不开的APP,但系统自带的文件管理器一般较弱,没有网络功能等,需要安装第三方文件管理器。过了一段时间,我遇到了ES浏览器,一看就离不开了,这几年一直是我手机需要和常用的APP,在启动屏幕上官方自称是“安卓第一文件管理器”,在一定程度上也很有名。...
新玩法“元婴神识系统”抢先知 数据分析告诉你怎么玩!

新玩法“元婴神识系统”抢先知 数据分析告诉你怎么玩!

作者: 天天见闻 时间:2023-10-07 阅读: 66
神识通过元儿界面切换,可以说是元儿的第二页,内容不同于元儿。要识别海洋,您需要解锁相应的婴儿位置,然后才能解锁,解锁后可以修炼,提高属性。每个识海的水平上限和元儿一样都是60级,同样灵核的水平最高也是60级。从表中可以看出,等级越高,修炼所需的硅石越多,而且到了28级,需求量就会大幅提高,以后需要的工具就越多。...
我来说两句

年度爆文