Hallo,
über einen SqlDataSource befülle ich mein Grid View. Das Problem ist wenn die DB Anfrage keine Datensätze zurück liefert bekomme ich auch kein GridView zu sehen.
Habt Ihr vielleicht eine Idee wie ich auch bei einer leeren Anfrage das GridView anzeigen kann (meine nur die Beschriftungen der einzelnen Spalten).
MfG
Hallo,
das ist keine Problem, sondern richtig.
Dein GridView ist default so eingestellt das die Columns automatisch aus der DataSource beschriftet und erstellt werden. Wenn aber die DataSource nichts hat, dann kann auch nichts generiert werden. Siehe auch AutoGenerateColumns bei DataGridView.
Diese Eigenschaft müsstest du auf false stellen und dich selber um die Erstellung der Columns kümmern. Dann klappt es und du bekommst auch die Spalten angezeigt wenn das Query keine Datensätze zurückliefert.
Gruß falangkinjau
Hallo,
die Eigenschaft AutoGenerateColumns ist bei mir auf false und ich habe die Columns selber angegeben. Trotzdem zeigt er mir das GridView nicht an, wen die DB-Anfrage nichts zurück liefert.
MfG
Hallo,
das ist komisch. Bei mir funktioniert es wunderbar.
Poste doch mal ein Beispielcode.
Gruß falangkinjau
Hi,
ich habs alles über den "GUI-Designer" (oder wie das auch heisen mag im VS) erstellt, also über Spalte hinzufügen besimmte Spalte auswählen und Datenfeld angeben.
Vielleicht habe ich auch irgendwo was übersehen 🤔
Hallo,
ich mache es ohne Designer. Per Code die Columns erstellen, Spalten mappen usw.. Ob es noch einen anderen Weg gibt weiss ich nicht.
Hier ein Pseudobeispiel für das was ich oben meinte:
dataGridView.AutoGenerateColumns = false;
DataGridViewTextBoxColumn dgvtbc = new DataGridViewTextBoxColumn();
//jetzt mit was gemappt werden soll
dgvtbc.DataPropertyName = "Dein_Spaltenname_aus_der_Datasource";
dgvtbc.HeaderText = "Deine_Spalten_beschriftung";
dataGridView.Columns.Add(dgvtbc);
u.s.w.
In der rauhen Wirklichkeit habe ich immer ein BasisDataGridView welches vom DataGridView abgeleitet ist. Stellt mir die Grundfunktionalität wie Aussehen etc. zur Verfügung so wie ich es brauche. Vom BasisDataGridView leitet ich dann immer die eigendlichen Views für für die Anwender ab. Im Konstruktor werden dann die Spalten erstellt.
Gruß falangkinjau