if (Session["UserName"] != null)
{
TB_ProductPrice.Text = Session["UserName"].ToString();
if (!IsPostBack)
{
ViewState["SortExpression"] = "ID"//第一次加载时,默认按ID排序
ViewState["SortDir"] = "ASC"//排序方式为升序
DBind()
}
}
Gridview_Sorting事件:
//首先判断当前的排序表达式(字段),是否为当前当前的表达式。。。
if (ViewState["SortExpression"].ToString() == e.SortExpression.ToString())
{
//判断当前的排序方式是否为倒序(DESC),如果是则将排序方式设为升序(ASC),原因是:因为我们要做双向排序!
if (ViewState["SortDir"].ToString() == "DESC")
{
ViewState["SortDir"] = "ASC"
}
else
{
ViewState["SortDir"] = "DESC"
}
}
else
{
ViewState["SortExpression"] = e.SortExpression//将触发到表达式赋值给ViewState["SortExpression"]
}
DBind()
private void DBind()
{
DataView dv = new DataView(CreateTable())
dv.Sort = (string)ViewState["SortExpression"] + " " + ViewState["SortDir"].ToString()//设置数据源的排序表达式
this.GridView1.DataSource = dv
this.GridView1.DataBind()
}
现在看明白了没?
如果你的排序函数是写在前台的,可以通过以下函数为标题添加单击事件。this.GridView1.HeaderRow.Cells[3].Text = "zxj"
this.GridView1.HeaderRow.Cells[3].Attributes.Add("onclick", "test()")//test为前台的JS函数。
如果你是写在后台的,那就在前台这个函数中回调后台函数,不过这样实现起来比较复杂,具体我也写不出来,不过肯定是能实现的。
但是个人觉得就个排序功能没必要弄的这么复杂啊。而且GRIDVIEW自带排序功能的。
你可以把标题列也直接绑定数据啊,然后自动打开GRIDVIEW的排序功能就可以了啊。
this.GridView1.AllowSorting = true//设置GridView的AllowSorting属性为TURE即可实现排序功能了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)