8 Stimmen

Die Änderung der Spaltenreihenfolge in einer an ein DataGridView gebundenen Datentabelle wird nicht in der Ansicht angezeigt

Wenn die Anwendung ausgeführt wird, wird die DataGridView ist gebunden an eine DataTable . Später füge ich weitere Spalten in die DataTable programmgesteuert und wird in den zugrunde liegenden Daten widergespiegelt - d.h. die Spalten-Ordinale sind so, wie sie sein sollten. Dies spiegelt sich jedoch nicht in der DataGridView . Stattdessen werden Spalten an die ursprünglich erzeugte Menge angehängt.

Dieses Beispiel zeigt es,

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);
        }
    }
}

Schaltfläche 1 erzeugt die Spalten, Schaltfläche 2 fügt eine Spalte hinzu und setzt die Ordnungszahl auf 0, so dass sie an erster Stelle im Raster steht, Schaltfläche 3 zeigt die Ordnungszahlen der Spalten an und zeigt, dass sie so sind, wie sie im Raster stehen sollten DataTable .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X