日期:2014-05-18  浏览次数:20541 次

急急急,asp.net中如何使GridView进行自动排序,谢谢
我先说一下我写的代码:
在页面中添加了一个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)
  {
  求这里面的代码怎么写,谢谢

  }

------解决方案--------------------
你绑定前先对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()转换
}
}

------解决方案--------------------
好麻烦的样子啊。。直接对数据源进行排序多好。。加个 order by 而已。多几个条件判断 单击不同表头的时候按不同的数据源。
------解决方案--------------------
sql语句自带 order by 这个比较简单
------解决方案--------------------
这样比较好,灵活,想对那个字段排序就对那个字段排序
探讨

你绑定前先对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()转换
}……

------解决方案--------------------
list集合本身就自带有orderby 的功能
C# code

 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);//降序