dataGrid selbst befüllen?



  • Hi Leute,

    ich brauch ein Control mit mehreren Spalten und in zwei dieser Spalten müssen ComboBoxes anzeigbar sein. Ein DataGridView kann das. Allerdings kann ich mein DataGridView nicht selbst befüllen, sondern brauch eine DB dafür... Gibt es da einen Workaround oder eine andere Klasse die ich verwenden könnte?



  • Wieso kannst du die nicht selbst füllen.
    Brauchst ja nur ein Dataset oder Datatable.
    Ob das nun aus der DB kommt oder du es selbst füllst hat damit nichts zu tun.
    Du übergibst es als Datasource.



  • Ah, das hört sich mal gut an, danke!



  • ok, das klappt jetzt mal schon ganz nett:

    // Create sample Products table.
                DataTable table = new DataTable();
                table.TableName = "name";
    
                DataColumn idColumn = table.Columns.Add("column1", typeof(string));
                table.Columns.Add("column2", typeof(string));
                table.Columns.Add("column3", typeof(string));
    
                table.Rows.Add(new object[] { "text11", "text12", "text13" });
                table.Rows.Add(new object[] { "text21", "text22", "text23" });
                table.AcceptChanges();
                dataGridView.DataSource = table;
    

    Weißt du auch noch, wie ich den beiden letzten Spalten sagen kann, dass sie Combo-Boxen enthalten sollen?



  • Ah, das DataGrid. Unser aller Lieblings-.NET-Control 🙂

    Die Antwort ist leider etwas schmerzlich, du musst das DataGrid vererben und einige Funktionen neu implementieren. Das ganze ist sehr umständlich, imo nicht wirklich praktikabel. Vielleicht findest du auf dem Codeproject ein Beispiel das du kopieren kannst.
    Alternativ kannst du TableRelations (oder so ähnlich) in deine DataTable hinzufügen, dann kannst du für eine Zeile ne abhängige Tabelle einblenden.



  • urgs... ist das auch beim neuen .NET 2.0 DataGridView so?



  • Zumindest weiß ich das es beim ASPNETCONTROL Gridview nicht so ist.
    Da ist es recht einfach.
    Habe es aber noch nicht in einem Programm verwendet.


Anmelden zum Antworten