Gridview自定义排序且显示上下箭头
2010-05-04 15:13
330 查看
实现功能:单击Gidview列名按该列升序或降序排列,且在排序列上显示向上来向下箭头示意图片
//设置Gridview的AllowSorting属性值为true,即允许排序
AllowSorting="True" OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
//为要排序的列加上SortExpression属性,其值为绑定的字段,如:
SortExpression="ID">
//添加Sorting和RowCreated事件
OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
后台代码,创建如下方法:
//设置默认表达式和排序顺序,放到page_load事件中
public void SetSorting()
{
ViewState["SortExpression"] = "ID";
ViewState["SortDirection"] = SortDirection.Descending;
}
//获取排序列索引
private int GetSortColumnIndex()
{
foreach (DataControlField field in gridview1.Columns)
{
if (field.SortExpression == ViewState["SortExpression"].ToString().Trim())
return gridview1.Columns.IndexOf(field);
}
return -1;
}
//添加排序图片
private void AddSortImage(int columnIndex, GridViewRow headerRow)
{
Image sortImage = new Image();
if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
{
sortImage.ImageUrl ="向上箭头图片的路径";
}
else
{
sortImage.ImageUrl = "向下箭头图片的路径";
}
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
//Gridview的Sorting事件
protected void gridview1_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["SortExpression"].ToString().Trim() == e.SortExpression)
{
if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
ViewState["SortDirection"] = SortDirection.Descending;
else
ViewState["SortDirection"] = SortDirection.Ascending;
}
else
{
ViewState["SortExpression"] = e.SortExpression;
ViewState["SortDirection"] = SortDirection.Descending;
}
//你绑定Gridview数据的函数
GvBind();
}
//Gridview的RowCreated事件
protected void gridview1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
int sortColumnIndex = GetSortColumnIndex();
if (sortColumnIndex != -1)
AddSortImage(sortColumnIndex, e.Row);
}
}
最后,还要修改GvBind()函数中的SQL语句
//将SortDirection转化为SQL语句中的ASC和DESC
string sortStr = ((SortDirection)ViewState["SortDirection"] == SortDirection.Descending ? "DESC" : "");
在原SQL语句后加上order by语句: "order by "+ ViewState["SortExpression"]+" "+sortStr
//设置Gridview的AllowSorting属性值为true,即允许排序
AllowSorting="True" OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
//为要排序的列加上SortExpression属性,其值为绑定的字段,如:
SortExpression="ID">
//添加Sorting和RowCreated事件
OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
后台代码,创建如下方法:
//设置默认表达式和排序顺序,放到page_load事件中
public void SetSorting()
{
ViewState["SortExpression"] = "ID";
ViewState["SortDirection"] = SortDirection.Descending;
}
//获取排序列索引
private int GetSortColumnIndex()
{
foreach (DataControlField field in gridview1.Columns)
{
if (field.SortExpression == ViewState["SortExpression"].ToString().Trim())
return gridview1.Columns.IndexOf(field);
}
return -1;
}
//添加排序图片
private void AddSortImage(int columnIndex, GridViewRow headerRow)
{
Image sortImage = new Image();
if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
{
sortImage.ImageUrl ="向上箭头图片的路径";
}
else
{
sortImage.ImageUrl = "向下箭头图片的路径";
}
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
//Gridview的Sorting事件
protected void gridview1_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["SortExpression"].ToString().Trim() == e.SortExpression)
{
if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
ViewState["SortDirection"] = SortDirection.Descending;
else
ViewState["SortDirection"] = SortDirection.Ascending;
}
else
{
ViewState["SortExpression"] = e.SortExpression;
ViewState["SortDirection"] = SortDirection.Descending;
}
//你绑定Gridview数据的函数
GvBind();
}
//Gridview的RowCreated事件
protected void gridview1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
int sortColumnIndex = GetSortColumnIndex();
if (sortColumnIndex != -1)
AddSortImage(sortColumnIndex, e.Row);
}
}
最后,还要修改GvBind()函数中的SQL语句
//将SortDirection转化为SQL语句中的ASC和DESC
string sortStr = ((SortDirection)ViewState["SortDirection"] == SortDirection.Descending ? "DESC" : "");
在原SQL语句后加上order by语句: "order by "+ ViewState["SortExpression"]+" "+sortStr
相关文章推荐
- [转]Gridview自定义排序且显示上下箭头
- 艾伟:Gridview自定义排序且显示上下箭头
- Gridview自定义排序且显示上下箭头
- Gridview自定义排序且显示上下箭头
- 分享GridView 排序上下箭头的实现和鼠标移上行的变色及序号列上带小三角形
- GridView实现自动排序带上下箭头
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现
- gridview 排序时候显示箭头
- GridView排序加上下箭头(2)
- GridView实现自动排序带上下箭头
- gridview 排序时候显示箭头
- 功能齐全的GridView!Asp.Net中GridView的自定义分页,带箭头的排序,鼠标高亮每一行,无数据时的提醒,点击Button弹出框!
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现(cs)
- GridView带有上下箭头的多列排序
- GridView实现自动排序带上下箭头
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除、导出、突出显示等常见应用实现
- 关于GridView中自定义分页、单选、多选、排序、自增列的简单应用
- 对gridview绑定数据的操作方法,自定义显示内容
- GridView的自定义分页,单选、多选、排序、自增列的简单应用
- 关于VS2005中GridView的自定义分页,单选、多选、排序、自增列的简单应用