急急急,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());
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 这个比较简单
[解决办法]
这样比较好,灵活,想对那个字段排序就对那个字段排序
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);//降序