用DataView实现GridView实现双向排序
来源:互联网 发布:excel数据地图模板 编辑:程序博客网 时间:2024/04/29 23:34
这个问题蛋疼啦一天,后面发现原来还是很简单的。现在写出来分享下吧。先声明下,因为用的不是GridView自动绑定(自动绑定的话可以选择属性启动排序不需编写代码就可以)而用的DataSet,可Dataset又不支持排序 ,所以就另辟蹊径啦找了个DataView来实现
后台代码:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断是否首次被加载false为首次加载
if (!IsPostBack)
{
ViewState["SortFiled"] = "学生账号";
ViewState["SortDirection"]="ASC";
ShowDataBind();
}
}
//用GridView显示数据
public void ShowDataBind()
{
//创建数据连接
string cn_sql = "server=.;database=Attendance;uid=sa; pwd=hujun";
SqlConnection myCon = new SqlConnection(cn_sql);
//创建SQL语句
string sql = "SELECT * FROM 学生信息表";
//myCon.Open();
//创建适配器
SqlDataAdapter da = new SqlDataAdapter(sql,cn_sql);
//创建数据集
DataSet ds = new DataSet();
da.Fill(ds);//填充数据集
//因为Dataset不支持排序所以用Dataview进行排序后再绑定
DataView dv = ds.Tables[0].DefaultView;
string sort = (string)ViewState["SortFiled"] + " " + (string)ViewState["SortDirection"];
dv.Sort = sort;
GridView1.DataSource = dv;//设置数据源
GridView1.DataBind();//绑定数据
myCon.Close();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;//必须获取
ShowDataBind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;//获取排序字段
if (ViewState["SortFiled"].ToString() == sortExpression)
{
if (ViewState["SortDirection"].ToString() == "ASC")
{
ViewState["SortDirection"] = "DESC";//降序
}
else
{
ViewState["SortDirection"] = "ASC";//升序
}
}
else
{
ViewState["SortFiled"]=e.SortExpression;
}
ShowDataBind();
}
}
效果:
点击学生账号后:
点击每一列都可以实现双向排序;大家有好的办法在评论里多写出来交流交流
- 用DataView实现GridView实现双向排序
- 用动态属性和DataView实现DataGrid的双向排序
- (ASP.NET)用动态属性和DataView实现DataGrid的双向排序
- 如何在GridView中实现双向排序
- Linq学习——gridview实现双向排序
- DataView数据视图实现数据过滤,排序
- 用ViewState实现GridView排序
- 用C#实现DataView分页
- 用dataView实现服务器端分页
- gridview 实现排序
- gridview 实现排序
- GridView实现拖动排序
- Java 实现双向冒泡排序
- GridView正反双向排序
- GridView正反双向排序
- GridView正反双向排序
- GridView正反双向排序
- GridView正反双向排序
- linux内核休眠与唤醒 && 安卓系统控制内核的状态
- SSH_Chapter1学习笔记
- SWT-JFace学习之初
- C/C++中部分位运算符的巧用
- ajax之jason发送到服务器端
- 用DataView实现GridView实现双向排序
- strategy的两种实现
- comboBox只能选取列表值
- ssl
- cxgrid双击取选中行的值
- 特别的一天
- 3.2 进程管理_进程创建
- kmp
- 国内最活跃的meego开发群官方blog正式成立了【群号53570497(快满),535710149(二群)】