1)前台代码(default.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ListTest.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvwStudent" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
2)后台代码
a)default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ListTest
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindStudent();
}
}
/// <summary>
/// 绑定student
/// </summary>
private void BindStudent()
{
gvwStudent.DataSource = SortItems();
gvwStudent.DataBind();
}
/// <summary>
/// 根据id排序
/// </summary>
/// <returns></returns>
private List<Student> SortItems()
{
List<Student> items = GetItems();
items.Sort();
return items;
}
/// <summary>
/// 根据name和sex获取students
/// </summary>
/// <returns></returns>
private IEnumerable<Student> GetItemsByNameAndSex()
{
IEnumerable<Student> items = GetItems().Where(u => u.Name == "lisi"&&u.Sex=="female");
return items;
}
/// <summary>
/// 根据id获取student
/// </summary>
/// <returns></returns>
private Student GetItemById()
{
Student item = GetItems().SingleOrDefault(u => u.Id == 3);
return item;
}
/// <summary>
/// 获取所有的student
/// </summary>
/// <returns></returns>
private List<Student> GetItems()
{
List<Student> items = new List<Student>();
items.Add(new Student(3,"zhangsan","male"));
items.Add(new Student(1,"lisi","female"));
items.Add(new Student(2,"wangwu","female"));
items.Add(new Student(4,"lisi","male"));
return items;
}
}
}
b)Student.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ListTest
{
public class Student:IComparable
{
public Student(int id, string name,string sex)
{
this.Id = id;
this.Name = name;
this.Sex = sex;
}
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string sex;
public string Sex
{
get { return sex; }
set { sex = value; }
}
/// <summary>
/// 根据id排序
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public int CompareTo(object obj)
{
if (obj is Student)
{
Student anotherItem = obj as Student;
return this.Id - anotherItem.Id;//asc
//return anotherItem.Id - this.Id; //desc
}
throw new ArgumentException("object is not a student");
}
}
}