C#对datagridview数据排序

举个例子有1个对姓名进行排序的button,点击之后对datagridview里面的数据进行排序

排序原理一般是因为DataView有排序功能.下面方法对DataGrid和GridView都适用,操作步骤如下:

1.在需要排序的字段里加:SortExpression,如:
<asp:BoundColumn DataField="D_DATE" HeaderText="申报日期" SortExpression="D_DATE">
</asp:BoundColumn>
----------------
2.在PageLoad()里:(即开始Load页面时以什么方式排序)
ViewState["SortOrder"] = "D_DATE";
ViewState["OrderDire"] = "ASC";
----------------
3.在绑定Grid时:
假设数据源为DataView,ID为objDV.
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
objDV.Sort = sort;
this.GridView1.DataSource = objDV;
this.GridView1.DataBind();
----------------
4.在GridView的Sorting事件中:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
Bind();//绑定Grid方法
}
(如果是DataGrid,则为SortCommand事件)

参考资料:此方法借鉴了清清月儿的博客,在此感谢

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-08
this.dataGridView1.Columns["列名"].SortMode =
DataGridViewColumnSortMode.Automatic;
如果列名不确定的话就用下标
this.dataGridView1.Columns[0].SortMode =
DataGridViewColumnSortMode.Automatic;

C#对datagridview数据排序
desc 是按照大到小的顺序排列,时间类型实质上是数字,距离现在越近的时间就越大,因此用desc倒序顺序输出即可达到你的目的 若要由小到大,则把desc换成asc

C#对datagridview数据排序
排序原理一般是因为DataView有排序功能.下面方法对DataGrid和GridView都适用,操作步骤如下:1.在需要排序的字段里加:SortExpression,如:<asp:BoundColumn DataField="D_DATE" HeaderText="申报日期" SortExpression="D_DATE"> <\/asp:BoundColumn> --- 2.在PageLoad()里:(即开始Load页面时以什么方式排序)...

c# winform datagridview 排序
sql="select * from A order by time " 是升序 如果降序的话就在后面加desc 查出来绑定到datagridview 上就是排好序的了

C# winform 中datagridview ,如何实现点击列头,对应的列自动排序?
} \/\/ 如果发现两行相同,则按学号排序 if (e.SortResult == 0 && e.Column.Name != "学号"){ e.SortResult = Convert.ToInt32(DataGridView1.Rows[e.RowIndex1].Cells["学号"].Value.ToString()) - Convert.ToInt32(DataGridView1.Rows[e.RowIndex2].Cells["学号"].Value.ToString()...

C# winform开发,用List<>给datagridview绑定数据以后,datagridview排序...
当然解决的方法是一楼那种,不知还有高手没。list是很好排序的:List<string> l = new List<string>();l.Sort();当然可以按照自己想要的方式排序。然后重新绑定就ok,dgv应该不用再重新绑定把,只要数据源改变会自动改变滴。

C# 向datagridview添加一行,并使他位于第一行,怎么弄呢?
绑定数据的sql语句写一个排序,order by 字段 desc ,这样后面添加数据就会排到最前面的,希望能帮助你

C# winform datagridview 怎么让数据在最上面开始增加
\/* 添加数据到dgv控件的代码省略... *\/ \/\/ 按自编号排序 DataGridViewColumn col = dataGridView1.Columns[1]; \/\/ 按降序(即始终每次新添加的数据排最前) ListSortDirection direction = ListSortDirection.Descending; dataGridView1.Sort(col, direction); \/\/ 执行指定排序规则 ...

C# winform datagrideview如何实现点击列标题实现按该列升序或降序排列...
1、DataGridView中的列本身就带有点一下就排序的功能;2、DataGridView列的属性有一个SortMode可以设排序,3、如果DataGridView的数据源是DataTable,可以指定DataTable排序 dataGridView.DataSource = tblDetail.DefaultView;tblDetail.DefaultView.Sort = "Time";...

C# winform datagridview 列顺序的问题?
public class ccc { private string id;private string name;public string Id { get { return id; } set { id = value; } } public string Name { get { return name; } set { name = value; } } } 例子里的 Id,Name ,谁在上面,绑定的时候谁就在前面。

c#中dataGridView的一行删除,数据库数据如何自动排列
sqlconnection("persist security info=false;data source=127.0.0.1;initial catalog=databasename;user id=userid;password=pwd");\/\/连数据库 conn.open();\/\/打开链接 sqlcommand cmd=new sqlcommand("delete from table1 where qqq='qqq'",conn);\/\/要执行的语句 int x=cmd.executenonquery();...

相似回答