示例如下:前臺(tái)
!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>無(wú)標(biāo)題頁(yè)/title>
/head>
body>
form id="form1" runat="server">
div>
asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AllowSorting="True" OnSorting="GridView1_Sorting">
FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
RowStyle BackColor="#EFF3FB" />
Columns>
asp:BoundField DataField="id" HeaderText="ID" SortExpression="id" />
asp:BoundField DataField="name" HeaderText="NAME" SortExpression="name" />
asp:BoundField DataField="age" HeaderText="AGE" SortExpression="age" />
/Columns>
PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
EditRowStyle BackColor="#2461BF" />
AlternatingRowStyle BackColor="White" />
/asp:GridView>
/div>
/form>
/body>
/html>
前臺(tái)注意點(diǎn):
需要對(duì)GridView啟用AllowSorting、設(shè)置OnSorting事件,對(duì)需要排序的列設(shè)定SortExpression屬性。
后臺(tái)
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 設(shè)定初始排序參數(shù)值
// 錯(cuò)誤的屬性設(shè)置方法:SortExpression、SortDirection均是GridView只讀屬性,無(wú)法直接賦值。
//this.GridView1.SortExpression = "id";
//this.GridView1.SortDirection = "ASC";
// 正確的屬性設(shè)置方法
this.GridView1.Attributes.Add("SortExpression", "id");
this.GridView1.Attributes.Add("SortDirection", "ASC");
// 綁定數(shù)據(jù)源到GridView
this.BindGridView();
}
}
/// summary>
/// GridView排序事件
/// /summary>
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// 從事件參數(shù)獲取排序數(shù)據(jù)列
string sortExpression = e.SortExpression.ToString();
// 假定為排序方向?yàn)椤绊樞颉?BR> string sortDirection = "ASC";
// “ASC”與事件參數(shù)獲取到的排序方向進(jìn)行比較,進(jìn)行GridView排序方向參數(shù)的修改
if (sortExpression == this.GridView1.Attributes["SortExpression"])
{
//獲得下一次的排序狀態(tài)
sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
}
// 重新設(shè)定GridView排序數(shù)據(jù)列及排序方向
this.GridView1.Attributes["SortExpression"] = sortExpression;
this.GridView1.Attributes["SortDirection"] = sortDirection;
this.BindGridView();
}
/// summary>
/// 綁定到GridView
/// /summary>
private void BindGridView()
{
// 獲取GridView排序數(shù)據(jù)列及排序方向
string sortExpression = this.GridView1.Attributes["SortExpression"];
string sortDirection = this.GridView1.Attributes["SortDirection"];
// 調(diào)用業(yè)務(wù)數(shù)據(jù)獲取方法
DataTable dtBind = this.getDB();
// 根據(jù)GridView排序數(shù)據(jù)列及排序方向設(shè)置顯示的默認(rèn)數(shù)據(jù)視圖
if ((!string.IsNullOrEmpty(sortExpression)) (!string.IsNullOrEmpty(sortDirection)))
{
dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}
// GridView綁定并顯示數(shù)據(jù)
this.GridView1.DataSource = dtBind;
this.GridView1.DataBind();
}
/// summary>
/// 獲取數(shù)據(jù)源的方法
/// /summary>
/// returns>數(shù)據(jù)源/returns>
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", "26" });
dt.Rows.Add(new object[] { "000002", "zhangyu", "26" });
dt.Rows.Add(new object[] { "000003", "zhukundian", "27" });
dt.Rows.Add(new object[] { "000004", "liyang", "25" });
dt.Rows.Add(new object[] { "000005", "caili", "27" });
return dt;
}
}
標(biāo)簽:焦作 延安 綿陽(yáng) 新疆 宜春 黃南 曲靖 大興安嶺
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《gridview自動(dòng)排序示例分享》,本文關(guān)鍵詞 gridview,自動(dòng),排序,示例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。