在我的应用程序中,我有一个DataGridView,它的数据源因你点击的按钮而异.EG点击"总下载量",它将是:
dataGridView1.DataSource = totalDownloads();
Run Code Online (Sandbox Code Playgroud)
或者每位玩家的下载量
dataGridView1.DataSource = playerDownloads();
Run Code Online (Sandbox Code Playgroud)
每种方法都通过SQL查询获取数据并返回此信息的dataTable.
但是,使用以下代码:
dataGridView1.DataSource=getStats();
public DataTable getStats()
{
DataTable table1 = new DataTable("Totals");
table1.Columns.Add("Park Name");
table1.Columns.Add("Author");
table1.Columns.Add("Total Downloads");
table1.Columns[2].DataType = typeof(int);
table1.Columns.Add("Rating (Max 5)");
table1.Columns[3].DataType = typeof(float);
table1.Rows.Add(name,author,download, rating);
}
return table1;
}
Run Code Online (Sandbox Code Playgroud)
我希望看到顺序中的列:"公园名称""作者""总下载""评级"然而,他们进入"下载","公园名称","作者","评级"
我读过添加:dataGridView1.AutoGenerateColumns = false; 将解决这个问题......然而,这对订单没有任何影响......
谢谢您的帮助!
Mik*_*use 16
这是WinForms项目还是Asp.net项目?
如果是winforms,您应该能够通过访问GridViews列DisplayIndex来更改列的显示顺序
dataGridView1.Columns["Park Name"].DisplayIndex = 0; // or 1, 2, 3 etc
Run Code Online (Sandbox Code Playgroud)
Mic*_* Z. 10
我对列乱序的简单解决方案是添加这个设置DisplayIndex为的循环Index.
foreach (DataGridViewColumn col in grid.Columns) {
col.DisplayIndex = col.Index;
}
Run Code Online (Sandbox Code Playgroud)
在添加时Index将分配给每个列.我不确定为什么DisplayIndex会出现故障,但上面的脚本会修复它.
小智 7
对我来说,这不是诀窍。还需要一行:
entityDataGridView.AutoGenerateColumns = false;
Run Code Online (Sandbox Code Playgroud)
问候!
尝试像这样使用显示索引
private void AdjustColumnOrder()
{
customersDataGridView.Columns["Park Name"].DisplayIndex = 0;
customersDataGridView.Columns["Author"].DisplayIndex = 1;
customersDataGridView.Columns["Total Downloads"].DisplayIndex = 2;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33513 次 |
| 最近记录: |