各位给小弟解决一下双向排序的问题,

humin1906 2003-09-11 11:54:21
给datagrig排序。我要“Desc”和“Asc”2 个都可以排序。是在C#里;
还望各位指导一下。
...全文
22 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
humin1906 2003-09-12
  • 打赏
  • 举报
回复
本问题以解决,谢谢各位!!!
humin1906 2003-09-11
  • 打赏
  • 举报
回复
谢谢啊!下面这段代码也是讲这个的。要怎么改才能实现双向排序啊
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{

if(SortBy=="Asc")
{
DataView Dv=new DataView(GetDs().Tables["fmDocFolder"]);
Dv.Sort=e.SortExpression;
dgdFolder.DataSource=Dv;
dgdFolder.DataBind();
SortBy="Desc";
}
else
{
DataView Dv=new DataView(GetDs().Tables["fmDocFolder"]);
Dv.Sort=e.SortExpression + SortBy dgdFolder.DataSource=Dv;
dgdFolder.DataBind();
SortBy="Asc";
}

}
wsuyu_allcom 2003-09-11
  • 打赏
  • 举报
回复
在页面LOAD时设置VIEWSTATE
ViewState["LastSort"]=-1;
ViewState["count"]="0";
//保存排序次序(升序,降序)
ViewState["sortOrder"]="DESC";
ViewState["SortExpression"]="ID";
响应排序事件:
/// <summary>
/// 排序消息列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void sortMessage(Object sender, DataGridSortCommandEventArgs e)
{
//切换升序,降序
string sortOrder = ViewState["sortOrder"].ToString();

//如果是相同的列,才切换升序,降序
int lastSort = Int32.Parse(ViewState["LastSort"].ToString());
if(taskGrid.Columns[lastSort].SortExpression.Equals(e.SortExpression))
{
if(sortOrder.Equals("ASC"))
{
ViewState["sortOrder"]="DESC";
}
else
{
ViewState["sortOrder"]="ASC";
}
}
ViewState["SortExpression"]=e.SortExpression;
bindData(ViewState["SortExpression"].ToString(),Int32.Parse(ViewState["status"].ToString()),Int32.Parse(ViewState["type"].ToString()));
}

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧