以下是一个示例代码,演示了如何按名称对GridView中的项目进行排序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 假设有一个名为"items"的List,其中包含GridView中的项目
List- items = GetItems();
// 将列表绑定到GridView
GridView1.DataSource = items;
GridView1.DataBind();
}
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// 获取要排序的列名称
string sortExpression = e.SortExpression;
// 获取GridView绑定的数据源
List
- items = GetItems();
// 根据排序列名称进行排序
if (sortExpression == "Name")
{
items = items.OrderBy(i => i.Name).ToList();
}
else if (sortExpression == "Price")
{
items = items.OrderBy(i => i.Price).ToList();
}
// 根据排序顺序进行排序(升序或降序)
if (e.SortDirection == SortDirection.Descending)
{
items.Reverse();
}
// 重新绑定GridView
GridView1.DataSource = items;
GridView1.DataBind();
}
public List
- GetItems()
{
// 返回包含GridView项目的List
List
- items = new List
- ()
{
new Item() { Name = "Item 1", Price = 10 },
new Item() { Name = "Item 2", Price = 15 },
new Item() { Name = "Item 3", Price = 8 },
new Item() { Name = "Item 4", Price = 12 },
};
return items;
}
}
public class Item
{
public string Name { get; set; }
public decimal Price { get; set; }
}
在上面的示例中,我们在Page_Load事件中绑定了GridView并在GridView1_Sorting事件中进行排序。通过在GridView1_Sorting事件中获取排序列名称,我们可以根据需要对数据源进行排序。最后,我们使用Reverse方法根据排序顺序(升序或降序)对项目进行反转,并重新绑定GridView以显示排序结果。
上一篇:按名称对二维数组进行分组
下一篇:按名称对函数进行排序?