gridview自動(dòng)排序示例分享

小云
106
2023-08-14 15:41:37

GridView是一個(gè)用于展示數(shù)據(jù)的控件,它支持自動(dòng)排序功能,可以根據(jù)列的值自動(dòng)對(duì)數(shù)據(jù)進(jìn)行排序。下面是一個(gè)GridView自動(dòng)排序的示例代碼:

  1. 在前端頁(yè)面,添加一個(gè)GridView控件,并設(shè)置AutoGenerateColumns屬性為true,使其自動(dòng)生成列。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView>
  1. 在后臺(tái)代碼中,綁定數(shù)據(jù)源到GridView,并設(shè)置GridView的AllowSorting屬性為true,啟用排序功能。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 創(chuàng)建數(shù)據(jù)源
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
// 添加示例數(shù)據(jù)
dt.Rows.Add(1, "Alice", 25);
dt.Rows.Add(2, "Bob", 30);
dt.Rows.Add(3, "Charlie", 20);
// 綁定數(shù)據(jù)源到GridView
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// 獲取排序方向
string sortDirection = "ASC";
if (ViewState["SortDirection"] != null)
{
if (ViewState["SortDirection"].ToString() == "ASC")
sortDirection = "DESC";
else
sortDirection = "ASC";
}
// 排序數(shù)據(jù)源
DataTable dt = (DataTable)GridView1.DataSource;
dt.DefaultView.Sort = e.SortExpression + " " + sortDirection;
// 更新排序方向
ViewState["SortDirection"] = sortDirection;
// 重新綁定數(shù)據(jù)源到GridView
GridView1.DataSource = dt;
GridView1.DataBind();
}

在上述代碼中,Page_Load事件中創(chuàng)建了一個(gè)DataTable對(duì)象,并添加了示例數(shù)據(jù)。然后將數(shù)據(jù)源綁定到GridView控件上。

在GridView1_Sorting事件中,首先獲取排序方向,然后根據(jù)列的表達(dá)式和排序方向?qū)?shù)據(jù)源進(jìn)行排序,最后重新綁定數(shù)據(jù)源到GridView控件上。

通過以上代碼,就實(shí)現(xiàn)了GridView的自動(dòng)排序功能。當(dāng)點(diǎn)擊GridView的列標(biāo)題時(shí),會(huì)根據(jù)點(diǎn)擊的列進(jìn)行升序或降序排序。

0