【问题标题】:Binding to ASP.NET GridView绑定到 ASP.NET GridView
【发布时间】:2009-01-15 11:57:19
【问题描述】:

我有以下代码:

var emp = new List<Employee>
{    
   new Employee{ID=1, EmpFname="matt", EmpLName="Cook"},  
   new Employee{ID=2, EmpFname="mary", EmpLname="John"}
};

如何按 EmpLName 对 emp 进行排序并将其绑定到 GridView?如何指定 asc 或 desc?

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:
            List<Employee> temp = new List<Employee> { 
                new Employee { ID = 1, EmpFname = "matt", EmpLName = "Cook" }, 
                new Employee { ID = 2, EmpFname = "mary", EmpLName = "John" } };
    
            temp.Sort(delegate(Employee e1, Employee e2)
            {
                // returns asc
                return e1.EmpLName.CompareTo(e2.EmpLName);
               // returns desc
               //  return e2.EmpLName.CompareTo(e1.EmpLName);
    
            });
    
            // no need to use var keyword, just bind the List 
            MyGridView.DataSource = temp;
            MyGridView.DataBind();
    

    【讨论】:

    • +1 这也是我所做的。您的 Employee 需要一个 Sort() 委托方法。您也可以在定义 Employee 类的地方执行此操作。在 List 上调用 Sort() 然后绑定它。
    【解决方案2】:

    使用 LINQ 的简单方法:

    var sortedEmpList = ( from e in emp
    orderby e.EmpLName
    select e).ToList()
    );
    

    您还可以通过在 orderby 之后添加更多属性来继续按其他属性排序。

    orderby e.EmpLName, e.EmpFName  //, ...
    

    如果需要,请选择降序...

    orderby e.EmpLName descending
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多