DataGridView绑定数据源后列之间如何排序?

csszhz 2010-04-04 01:15:54
将一个List绑定到DataGridView上,List里面放的是实体对象。
显示时每一列即是实体对象的一个属性,但是这些列显示的顺序是杂乱无章的,怎么样按自己的要求来排列?
...全文
707 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
csszhz 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 worms1303 的回复:]

这个我刚刚才Google过。
我用的是asp.net的gridview,不过应该差不多。

首先,进行“编辑列”操作,将“自动生成字段”的勾去掉,然后逐一添加列并制定字段名,接着按你要的顺序从上到下排好,这样就可以了。
[/Quote]
不是一回事,asp.net的gridview没问题。那是手动排的。我想在代码里自己排。不过这问题我早扔下八辈子了,不等了,结贴。
Jump2cn 2010-04-09
  • 打赏
  • 举报
回复
这个我刚刚才Google过。
我用的是asp.net的gridview,不过应该差不多。

首先,进行“编辑列”操作,将“自动生成字段”的勾去掉,然后逐一添加列并制定字段名,接着按你要的顺序从上到下排好,这样就可以了。
csszhz 2010-04-09
  • 打赏
  • 举报
回复
up up up up up
csszhz 2010-04-08
  • 打赏
  • 举报
回复
up up up up up
hywink 2010-04-07
  • 打赏
  • 举报
回复
帮顶。。。。。。
csszhz 2010-04-06
  • 打赏
  • 举报
回复
up up up up up
peterb 2010-04-05
  • 打赏
  • 举报
回复
可以自己创建列对象的, Columns[0].DisplayIndex;
csszhz 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 gs0038 的回复:]

使用你的DataGridView的列名里的数据源字段与你的实体属性名相同就可以啦
[/Quote]
在DataGridView上添加四列,依次是Name、Age、C、X。
实际显示时又变啦,变成Name、X、Age、C。
csszhz 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 peterb 的回复:]

可以自己创建列对象的, Columns[0].DisplayIndex;
[/Quote]
没看懂具体该怎么操作。
实体类是这样写的:

class Person
{
string name;

public string Name
{
get { return name; }
set { name = value; }
}

int age;

public int Age
{
get { return age; }
set { age = value; }
}

string c;

public string C
{
get { return c; }
set { c = value; }
}

string x;

public string X
{
get { return x; }
set { x = value; }
}
}

我就想让其按Name,Age,C,X的顺序在DataGridView上显示。
默认的显示结果是:X,Age,C,Name。
既不是按照字母顺序也不是按照实体类里面声明的顺序。
我就想怎样才能按照自己的意愿安排每一列的顺序
gs0038 2010-04-05
  • 打赏
  • 举报
回复
使用你的DataGridView的列名里的数据源字段与你的实体属性名相同就可以啦
csszhz 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gramaster 的回复:]

今天休息,陪宝宝去了,没上来看下。看来你已经排好顺序了,是不是gridview没按你安排的顺序排列呢?应该是你把自动生成列打开了吧,你写上:
gridview.AutoGenerateColumns = false;//gridview是指你的gridview控件
这样应该就不会乱了。
[/Quote]
我想知道的是怎么自己安排列顺序去排列。
它自己默认的列的顺序好奇怪呢,经测试并不是按列名字母顺序排列,也不是按实体类内写的顺序排列。到底这个默认是按啥顺序呢?
csszhz 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gramaster 的回复:]

今天休息,陪宝宝去了,没上来看下。看来你已经排好顺序了,是不是gridview没按你安排的顺序排列呢?应该是你把自动生成列打开了吧,你写上:
gridview.AutoGenerateColumns = false;//gridview是指你的gridview控件
这样应该就不会乱了。
[/Quote]
不好使。
gramaster 2010-04-05
  • 打赏
  • 举报
回复
今天休息,陪宝宝去了,没上来看下。看来你已经排好顺序了,是不是gridview没按你安排的顺序排列呢?应该是你把自动生成列打开了吧,你写上:
gridview.AutoGenerateColumns = false;//gridview是指你的gridview控件
这样应该就不会乱了。
csszhz 2010-04-04
  • 打赏
  • 举报
回复
up up up up up up up up up
csszhz 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gramaster 的回复:]

调节这个不难,问题是你打算怎么样的界面实现,比如是有个多选框,按照你点击里面选项的先后次序来决定gridview列的先后次序,还是,你想能自由拖动列,把后面的列用鼠标拖到前面去,还是怎样?
[/Quote]
我就想在代码里调成我需要的,不要让他默认的顺序。于是想知道怎么调,应该不麻烦吧,麻烦的话我就不如用ListView了。
gramaster 2010-04-04
  • 打赏
  • 举报
回复
调节这个不难,问题是你打算怎么样的界面实现,比如是有个多选框,按照你点击里面选项的先后次序来决定gridview列的先后次序,还是,你想能自由拖动列,把后面的列用鼠标拖到前面去,还是怎样?
cymandhxl 2010-04-04
  • 打赏
  • 举报
回复
good good study,day day up
csszhz 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gramaster 的回复:]

什么意思,你的意思是指表格按Age的大小排列和按Name的升降序排列,还是说你想随自己的意思调节Age,Name这两列的先后次序,比如调节成Name在第一列,Age在第2列这样吗?
[/Quote]
想随自己的意思调节Age,Name这两列的先后次序
gramaster 2010-04-04
  • 打赏
  • 举报
回复
什么意思,你的意思是指表格按Age的大小排列和按Name的升降序排列,还是说你想随自己的意思调节Age,Name这两列的先后次序,比如调节成Name在第一列,Age在第2列这样吗?
csszhz 2010-04-04
  • 打赏
  • 举报
回复
楼上两位大哥,可能是我描述的问题,我不是问怎么给实体类属性值排序。
找不到插入表格,我用手画一下。
假设下面这个是一个DataGridView,List<T>里面放的Person,Person有两个属性Name、Age
———————
| Age | Name | //这是列名
———————
| 15 | 张三 |
———————
| 18 | 李四 |
———————
默认是Age在第一列,Name在第二列。
我现在想要的是怎样按照自己的意愿安排这Age与Name的顺序。
加载更多回复(2)

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧