Gridview列显示顺序

时间:2011-03-08 11:44:29

标签: asp.net

我将Gridview绑定到自定义对象。 但显示的字段顺序不正确。 在将Gridview绑定到自定义对象时,有没有办法设置字段显示顺序?

提前致谢。

3 个答案:

答案 0 :(得分:0)

如果您谈到ASP.NET网格视图,那么您必须关闭AutoGenerate Columns,然后使用您想要的顺序手动添加列。

答案 1 :(得分:0)

甚至不能保证订单与自定义对象中属性的声明顺序相同MS exposes

“GetProperties方法不会按特定顺序返回属性,例如按字母顺序排列或声明顺序。您的代码不得依赖于返回属性的顺序,因为该顺序会有所不同。”

您应该自己订购,例如Array.Sort。这里有一些进一步的信息,也是一个关于hot的示例,以确保它按声明排序:http://www.sebastienmahe.com/v3/seb.blog/2010/03/08/c-reflection-getproperties-kept-in-declaration-order/ Linq更简单:

type.GetProperties().OrderBy(x=>x.MetadataToken)

要订购自定义对象,需要实现IComparable,或者必须为排序函数提供IComparer作为参数。

答案 2 :(得分:-1)

对不起我之前找到的链接是错误的。谢谢你的意见。我认识到当GridView.AutoGenerateColumns设置为true时,您可以更改 数据源中列的顺序。如果是AutoGenerateColumns false,您可以在构建和绑定网格时更改列 从代码。例如,

DataTable dt = new DataTable();
dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Column2", typeof(string));

dt.Rows.Add(new object[] { obj1.property1, obj2.property2 });
//...

Grid1.DataSource = dt;
Grid2.DataBind();