日期:2014-05-17  浏览次数:20493 次

关于DataView.Sort排序的问题。因远程修改无法调试请大神帮忙。

DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("xmls/tops20.aspx"));
        DataView tableview = ds.Tables[0].DefaultView;
        tableview.Sort = " marks desc ";
        GvList.DataSource = tableview;
        GvList.DataBind();

显示效果有点问题,上面积个是对的,下面几个也是对的,放在一起就不对了。

------解决方案--------------------
类似这样:

ds.Tables[0].Columns.Add("iPersonOrderSort",System.Type.GetType("System.Int32"));
ds.Tables[0].Columns["iPersonOrderSort"].Expression = "Convert(iPersonOrder,'System.Int32')";

DataView dv = ds.Tables[0].DefaultView;
dv.Sort = "iPersonOrderSort";
------解决方案--------------------
 GvList.DataSource =dt.AsEnumerable().OrderBy(t => Convert.ToInt32(t.Field<string>("marks").Trim())).Select(t => new
            {
                userid = t.Field<string>("userid"),
                marks = t.Field<string>("marks")
                ……
            });
------解决方案--------------------
DataTable dt = new DataTable();
            dt.Columns.Add("产品", typeof(int));
ViewState["SortOrder"] = "产品";
                    ViewState["OrderDire"] = "ASC";

 DataTable dt = GetData();//获取DataTable
                DataView view = dt.DefaultView;
                string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
                view.Sort = sort;
                GridView1.DataSource = view;
                GridView1.DataBind();