急急急,asp.net中如何使GridView进行自动排序,谢谢

study_hard_01 2012-03-30 06:11:26
我先说一下我写的代码:
在页面中添加了一个GridView,GridView的绑定数据源并不是连接数据库信息,而是一个列表数组List,我想使GridView按list中的自段ID进行排序,已经在前台界面设置了AllowSorting="True" SortExpression="ID",不知道 protected void gvinfo_Sorting(object sender, GridViewSortEventArgs e)里面的事件应该如何去写,我从网上查的资料都是用dataview的,而我的是list信息,不知道怎么去写?
页面相关代码如下:
public static List<Model.DataPoint> dpinfolist = new List<Model.DataPoint>();
.............
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.BindGridView();

}

}
protected void BindGridView()
{

gvinfo.DataSource = dpinfolist;
gvinfo.DataKeyNames = new string[] { "ID" };
gvinfo.DataBind();

}

protected void gvinfo_Sorting(object sender, GridViewSortEventArgs e)
{
求这里面的代码怎么写,谢谢

}
...全文
297 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
study_hard_01 2012-04-01
  • 打赏
  • 举报
回复
问题解决 谢谢大家
xiaohong 2012-03-31
  • 打赏
  • 举报
回复
使用linq进行排序是个不错的选择 不果如果能在query数据时就排好是首选,不能的话就用linq对结果集进行排序,这个需要楼主懂得这几个知识点:匿名函数、lambda表达式、linq标准操作符。这些用1个小时就可以学会。其它什么linq知识就没必须去先学后用了,直接用那样学那样。
study_hard_01 2012-03-31
  • 打赏
  • 举报
回复
我利用5楼的方法也没有达到排序的效果 不知道什么原因,5楼的朋友可以进一步解释吗
study_hard_01 2012-03-31
  • 打赏
  • 举报
回复

你绑定前先对list进行排序,排序调用list.Sort(new MyComparer());

class MyComparer:IComparer<Model>
{
int IComparer<Model>.Comparer(Model x,Model y)
{
return x.ID>y.ID?1:-1;//如果ID是字符串则进行Int.parse()转换
}
}
====我把代码放进去之后,提示:1:错误 “CloudWeb.CloudCompute.FourParameter.MyComparer”不实现接口成员“System.Collections.Generic.IComparer<Model.DataPoint>.Compare(Model.DataPoint, Model.DataPoint)”
2:显式接口声明中的“IComparer<...>.Comparer”不是接口成员,不知道我哪里写的有错误?
cykb518 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

我利用5楼的方法也没有达到排序的效果 不知道什么原因,5楼的朋友可以进一步解释吗
[/Quote]

应该是这样的你想这样写

public class Test
{
public int IID { get; set; }
public string str { get; set; }
}

List<Test> TestList = new List<Test>();
TestList= TestList.OrderBy(x => x.IID);//升序
TestList= TestList.OrderByDescending(x => x.IID);//降序

排序后的结果从新赋给这个对象 或者好像可以直接 TestList.OrderBy(x => x.IID).ToList()
cykb518 2012-03-30
  • 打赏
  • 举报
回复
list集合本身就自带有orderby 的功能

public class Test
{
public int IID { get; set; }
public string str { get; set; }
}

List<Test> TestList = new List<Test>();
TestList.OrderBy(x => x.IID);//升序
TestList.OrderByDescending(x => x.IID);//降序
色拉油 2012-03-30
  • 打赏
  • 举报
回复
这样比较好,灵活,想对那个字段排序就对那个字段排序[Quote=引用 1 楼 的回复:]

你绑定前先对list进行排序,排序调用list.Sort(new MyComparer());

C# code
class MyComparer:IComparer<Model>
{
int IComparer<Model>.Comparer(Model x,Model y)
{
return x.ID>y.ID?1:-1;//如果ID是字符串则进行Int.parse()转换
}……
[/Quote]
lee13688 2012-03-30
  • 打赏
  • 举报
回复
sql语句自带 order by 这个比较简单
相当之稳重 2012-03-30
  • 打赏
  • 举报
回复
好麻烦的样子啊。。直接对数据源进行排序多好。。加个 order by 而已。多几个条件判断 单击不同表头的时候按不同的数据源。
mngzilin 2012-03-30
  • 打赏
  • 举报
回复
你绑定前先对list进行排序,排序调用list.Sort(new MyComparer());

class MyComparer:IComparer<Model>
{
int IComparer<Model>.Comparer(Model x,Model y)
{
return x.ID>y.ID?1:-1;//如果ID是字符串则进行Int.parse()转换
}
}

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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