您的位置:首页 > 其它

【GridView表头排序】点击表头可以进行升序和降序的排列

2009-04-20 14:00 549 查看
在.aspx页面GridView绑定的表头中,加入“SortExpression”属性,一般是:

<asp:BoundField DataField="totalnum" HeaderText="总数" SortExpression="totalnum"  />


如果有模板列的话,也是一样的:

<asp:TemplateField HeaderText="总大小(M)"  SortExpression="totalfilesize" >

<ItemTemplate>
<asp:Label ID="Label1" runat="server" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>


接下来是在.CS中写代码了:

protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
this.GridView1.Attributes.Add("SortExpression", "totalnum");
this.GridView1.Attributes.Add("SortDirection", "ASC");

Bind();//自己写的GridView绑定方法
}

}

public void Bind()
{
string sortExpression = this.GVRSType.Attributes["SortExpression"];
string sortDirection = this.GVRSType.Attributes["SortDirection"];

DataTable dtBind = 要绑定的数据;

this.lblOrg.Text = "(" + ro.Name + ")";
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}

GridView1.DataSource = dtBind;
GridView1.DataBind();
}

protected void GVRSType_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression.ToString();

// 假定为排序方向为“顺序”
string sortDirection = "ASC";

// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
if (sortExpression == this.GridView1.Attributes["SortExpression"])
{
//获得下一次的排序状态
sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
}

// 重新设定GridView排序数据列及排序方向
this.GridView1.Attributes["SortExpression"] = sortExpression;
this.GridView1.Attributes["SortDirection"] = sortDirection;

Bind();
}


有时间看看怎么加个按钮吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐