首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么进行datagridview 排序.自定义排序

2013-07-11 
如何进行datagridview 排序.自定义排序我用datagridview 有一个日期型数据排序.默认不是按日期先后顺序排

如何进行datagridview 排序.自定义排序
我用datagridview 有一个日期型数据排序.默认不是按日期先后顺序排序的.而是把日期当做文本在排序了. 

我的要求是 datagridview 日期型列按日期先后顺序排序. dataTable  是通过NPOI从excel 中来的数据. 已经读到datagridview'中了. 
[解决办法]
http://blog.sina.com.cn/s/blog_538311d30100p3ve.html
[解决办法]

引用:
上面的大哥.我看过那个好像没法实现.



     //AllowSorting="True"  OnSorting="gvStore_Sorting"
    protected void gvStore_Sorting(object sender, GridViewSortEventArgs e)
    {
        //双向排序
        if (ViewState["sort"] == null)
        {
            ViewState["sort"] = "ASC";//默认升序
        }
        else
        {
            if (ViewState["sort"].ToString() == "ASC")
            {
                ViewState["sort"] = "DESC";
            }
            else
            {
                ViewState["sort"] = "ASC";
            }
        }

        //重新绑定数据
        SqlConnection conn = new SqlConnection(DbConn.connStr);
        SqlDataAdapter sda = new SqlDataAdapter("select * from store", conn);


        DataSet ds = new DataSet();
        sda.Fill(ds);
        DataView dv = new DataView(ds.Tables[0]);//数据试图
        //排序条件
        dv.Sort = e.SortExpression + " " + ViewState["sort"].ToString();
        //设置数据源
        gvStore.DataSource = dv;
        gvStore.DataBind();
    }


[解决办法]
把日期列你转化成日期类型不就成了吗?

或者字符串 yyyy-MM-dd 统格式不就成了吗?
[解决办法]
很简单,dataTable本身就自带排序,排序好后在绑定数据源,一切就ok了:如下
DataRow[] searchRows = dataTable.Select(searchString, "CreatTime desc");

记得给我满分。
[解决办法]
DataTable sourceTable = new DataTable();//将DataTable清空
            sourceTable = tableStruct();//给DataTable的行赋值
            foreach (DataRow searchRow in searchRows)
            {
                sourceTable.ImportRow(searchRow);
            }
这里是插入新表,你绑定新表就可以了,也就是sourceTable这张表。
[解决办法]
还是那句话,满分。
[解决办法]


引用:
很简单,dataTable本身就自带排序,排序好后在绑定数据源,一切就ok了:如下
DataRow[] searchRows = dataTable.Select(searchString, "CreatTime desc");

记得给我满分。



排序其它可以更简单

    DataView dv = dt.DefaultView;
    dv.Sort ="日期字段 Asc";
    dt = dv.ToTable();


其实楼主意思是日期被当做文本来排序,并不是需要排序方法,所以

要解决楼主的问题,是用NPOI读取日期列的时间进行转为DateTime格式
或者统一yyyy-MM-dd这种格式,也会按日期大小来显示的。


热点排行