如何在C#中将重新排列的列从datagridview中取出?我需要按顺序显示当前显示的所有列。我可以通过设置datagridview.AutoGenerateColumns=false来获得默认的列顺序,但即使在重新排列了表中的列之后,我也会获得相同的旧顺序。
编辑:基本上,我需要的是能够迭代通过所有列的数据,基于他们的显示索引
谢谢
发布于 2010-05-27 01:11:04
使用DataGridView列的DisplayIndex property。
DisplayIndex属性:
获取或设置列相对于当前显示列的显示顺序。
编辑:
它很丑陋,我相信人们会一笑置之,但这可能会让你对一个实现有一个粗略的想法来改进。
创建一个包含三列的DGV并设置它们的DisplayName属性,如下所示:
dataGridView1.Columns[0].DisplayIndex = 1;
dataGridView1.Columns[1].DisplayIndex = 2;
dataGridView1.Columns[2].DisplayIndex = 0;添加以下代码以循环访问DGV中的所有列,并按其DisplayIndex顺序访问这些列:
for (int index = 0; index < dataGridView1.Columns.Count; index++) {
foreach (DataGridViewColumn c in dataGridView1.Columns) {
if (c.DisplayIndex == index) {
// You've got your next column.
Console.WriteLine(c.Name);
}
}
}发布于 2010-05-27 01:07:42
你是如何选择的?选择*?您需要按所需的顺序指定列。
发布于 2010-05-27 01:09:10
您是否在网格的ItemTemplate部分重新排列了它们的顺序?您还可以通过GridView的上下文菜单更改顺序。或者,您可以更改SQL语句,并确保关闭自动生成
https://stackoverflow.com/questions/2915170
复制相似问题