Lorsque l'application est exécutée, le DataGridView
est lié à DataTable
. Plus tard, j'ajoute plus de colonnes au DataTable
par programme et cela se reflète dans les données sous-jacentes - c'est-à-dire que la colonne Ordinals est comme il se doit. Cependant, ceci n'est pas reflété dans le DataGridView
. Au lieu de cela, les colonnes sont ajoutées à l'ensemble généré à l'origine.La modification de l'ordre des colonnes dans DataTable lié à DataGridView ne reflète pas dans la vue
Cet exemple démontre,
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public DataTable data = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
this.dataGridView1.DataSource = data;
for (int i = 0; i < 5; i++)
{
this.data.Columns.Add(i.ToString());
}
}
private void button2_Click(object sender, EventArgs e)
{
DataColumn foo = new DataColumn();
this.data.Columns.Add(foo);
foo.SetOrdinal(0);
}
private void button3_Click(object sender, EventArgs e)
{
foreach (DataColumn tmpCol in this.data.Columns)
{
Console.WriteLine("{0} : {1}", tmpCol.ColumnName, tmpCol.Ordinal);
}
}
}
bouton 1 génère les colonnes, le bouton 2 ajoute une colonne et définit la ordinal à 0 de sorte qu'il doit être le premier dans la grille, le bouton 3 affiche les ordinaux des colonnes et montre qu'ils sont comment ils devraient être dans le DataTable
.
Veuillez corriger votre lien –