要求是页面上有按纽. 点击后就让gridview里的数据排序.不更改SQL语句.
因为我获取数据是动态得到不同的表.要每个表都能一个按钮点了按ID排.一个按钮点了按时间排;
GridView 里有哪些方法是干这个的吗? 还有就是那个有个让Gridview按标题排序的吧. 这个大家应该知道.
我也想过按标题排序.但又要自定义标题.因为只要一个按ID和一个按时间排就行了.多出的不显示.但数据里显示出那列的数据.这个怎么弄? .....不知道大家听明白没有. 说得好像有点乱.
因为我获取数据是动态得到不同的表.要每个表都能一个按钮点了按ID排.一个按钮点了按时间排;
GridView 里有哪些方法是干这个的吗? 还有就是那个有个让Gridview按标题排序的吧. 这个大家应该知道.
我也想过按标题排序.但又要自定义标题.因为只要一个按ID和一个按时间排就行了.多出的不显示.但数据里显示出那列的数据.这个怎么弄? .....不知道大家听明白没有. 说得好像有点乱.
解决方案 »
- window.onload加载三级联动的问题
- 请问添加一个ERROR.xml文件来定义错误,这样好吗?
- 有谁愿意和我一起创业,做一个游戏化社区,和Facebook的平台不一样。
- webdiyer的Aspnetpager控件的使用问题
- GridView 表头如何换行?
- login控件不能登录 救命
- 如何用asp.net程序向ie浏览器的受信任站点列表中加入一个新的站点?
- 如何得到服务器控件在网页中的具体位置啊??
- conn.asp连接不上,高手指点一下
- 有问题请教 WebMail和NYduLib.dll
- sqlCommand动态添加参数
- 问一个最简单的 asp.net 对 cookie 的操作问题。
String sort = "";
GridView1.Sort = sort;
//Click...Update...
获得后的数据用Session保存起来
我贴段代码给你看,我用的是List类型,你参考下巴 #region 排序方法 private List<RecommendedSort> SortingDataSource(string sortData, List<RecommendedSort> lstRecommendedSort)
{
string sortDataBase = sortData; string descString = " DESC";
string ascString = " ASC"; if (sortData.EndsWith(descString))
{
sortDataBase = sortData.Substring(0, sortData.Length - descString.Length);
} if (sortData.EndsWith(ascString))
{
sortDataBase = sortData.Substring(0, sortData.Length - ascString.Length);
} Comparison<RecommendedSort> comparison = null; switch (sortDataBase)
{
case "分类":
comparison = new Comparison<RecommendedSort>(
delegate(RecommendedSort lhs, RecommendedSort rhs)
{
return lhs.Name.CompareTo(rhs.Name);
}
);
break;
case "创建时间":
comparison = new Comparison<RecommendedSort>(
delegate(RecommendedSort lhs, RecommendedSort rhs)
{
return lhs.CreationDate.CompareTo(rhs.CreationDate);
}
);
break;
case "数量":
comparison = new Comparison<RecommendedSort>(
delegate(RecommendedSort lhs, RecommendedSort rhs)
{
return lhs.RecommendedCount.CompareTo(rhs.RecommendedCount);
}
);
break;
default:
comparison = new Comparison<RecommendedSort>(
delegate(RecommendedSort lhs, RecommendedSort rhs)
{
return lhs.Name.CompareTo(rhs.Name);
}
);
break;
} if (sortData.EndsWith("DESC"))
{
lstRecommendedSort.Sort(comparison);
lstRecommendedSort.Reverse();
}
else
{
lstRecommendedSort.Sort(comparison);
} return lstRecommendedSort;
} protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortData = e.SortExpression; if (ViewState["OrderDire"].ToString() == " DESC")
ViewState["OrderDire"] = " ASC";
else
ViewState["OrderDire"] = " DESC"; sortData += ViewState["OrderDire"].ToString(); List<RecommendedSort> lst = SortingDataSource(sortData, SessionConsts.RecommendedSortList); SessionConsts.RecommendedSortList = lst; if (lst != null)
{
GridView1.DataSource = lst;
GridView1.DataBind();
}
} #endregion希望对你有用
{
if(this.kjkm_dg.Attributes["SortExpression"]==null) //这里kjkm_dg为datagrid ID
{
this.kjkm_dg.Attributes["SortExpression"]="kmdm"; //这里给datagrid增加一个排序属性,且默认排序表达式为kmdm;
kjkm_dg.Attributes["SortDirection"]="ASC"; //这里给datagrid增加一个排序方向属性,且默认为升序排列;
}
mikecatbind(); //绑定函数,下面介绍
} protected void mikecatbind()
{
string sqlStr="select * from zc_kjkm";
DataView dv=new DataView();
string SortExpression=kjkm_dg.Attributes["SortExpression"];
string SortDirection=kjkm_dg.Attributes["SortDirection"];
dv=us.Bind(sqlStr).Tables[0].DefaultView; //来自web service的dataset,这里随便一个ds就可以;
dv.Sort=SortExpression+" "+SortDirection; //指定视图的排序方式;
kjkm_dg.DataSource=dv; //指定数据源
kjkm_dg.DataBind(); //数据绑定} 排序事件的编写: private void kjkm_dg_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
string SortExpression=e.SortExpression.ToString(); //获得当前排序表达式
string SortDirection="ASC"; //为排序方向变量赋初值
if(SortExpression==kjkm_dg.Attributes["SortExpression"]) //如果为当前排序列
{
SortDirection=(kjkm_dg.Attributes["SortDirection"].ToString()==SortDirection?"DESC":"ASC"); //获得下一次的排序状态 }
kjkm_dg.Attributes["SortExpression"]=SortExpression;
kjkm_dg.Attributes["SortDirection"]=SortDirection;
mikecatbind();
}
SortExpression SortDirection 也是弄过这两个.弄好久还弄不正常.
先放着.过几天再倒回来做这一段.上边的代码我会看的.