Laden...

GridView und Spalten

Erstellt von The Hit-Man vor 15 Jahren Letzter Beitrag vor 15 Jahren 940 Views
T
The Hit-Man Themenstarter:in
117 Beiträge seit 2008
vor 15 Jahren
GridView und Spalten

Ich habe mir ein GridView gebastelt, das mir meine SQL Abfrage anzeigt:


    protected void buttonSuchen_Click(object sender, EventArgs e)
    {
        sdTools msdTools = new sdTools();
        DataSet mDataSet = msdTools.ExecuteQuery("SELECT solnr, kdaufnronline,"+
            "aufklass, bezeichnung, fbeschreibung, kostenstelle " +
            "from solauftrag");
        gridViewErgebnis.DataSource = mDataSet;
        gridViewErgebnis.DataBind();

        gridViewErgebnis.Columns[1].ItemStyle.Width = 20;
    }

Durch diese Abfrage, bekommt mein GridView ja seine Spalten. Jetzt möchte ich auf bestimmte Spalten zugreifen, hier im Code, versuche ich es ja mit dem letzten Befehl. Allerdings bekomme ich dann immer eine Fehlermeldung, das mein Index außer Reichweite liegt. Hat jemand ne Ahnung, woran das liegen mag?

E
26 Beiträge seit 2009
vor 15 Jahren

ich bin zwar noch nicht lange mit asp.net zu gange, aber soviel ich festgestellt habe, musst du die spalten schon im asp code anlegen, sonst können die datatable spalten nicht zu geordnet werden.

Sprich:


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="1000px">
                    <Columns>
                        <asp:BoundField HeaderText="Name" DataField="Name" />
                        <asp:BoundField HeaderText="Type" DataField="Type" />
                    </Columns>
</asp:GridView>

DataField sind dann die Spaltennamen deiner DataTabe bzw. DataSets

1.433 Beiträge seit 2006
vor 15 Jahren

GridViewRowEventArgs-Klasse sehr gut wenn man Button Aktionen in einer Row abfangen will.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

T
The Hit-Man Themenstarter:in
117 Beiträge seit 2008
vor 15 Jahren

hmmmm, kann ich jetzt irgendwie nicht direkt nachvollziehen. Ich kann also nicht, per C# Code an die Spalten ran, die mir meine Abfrage liefert? Weil ich brauche das später dynamisch.

1.433 Beiträge seit 2006
vor 15 Jahren

Also wenn ich Dich jetzt richtig verstanden habe liefert Dir folgendes Query das Resultat.


SELECT solnr, kdaufnronline,"+
            "aufklass, bezeichnung, fbeschreibung, kostenstelle " +
            "from solauftrag

Laut dem Select solltest Du 6 Spalten im GridView haben.

Du könntest im Row_DataBound Ereignis oder Row_Created kannst Du noch auf die Spalten zugreifen.

Wenn Du im Debugger die DataSource anschaust, bekommst Du eine Resultat-Menge zurück?

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

T
The Hit-Man Themenstarter:in
117 Beiträge seit 2008
vor 15 Jahren

Ganz genau, ich bekomme 6 Spalten angezeigt. Jetzt ist es aber so, das die Splaten vom Aussehen her, später mal geändert werden sollen. Das heißt, zum Beispiel, das ich in der Abfrage eine Spalte habe, die riesig wird, weil dort eine Menge Text drin steht. Diese will ich eben, eine feste Breite mitgeben, damit es besser aussieht.

Du könntest im Row_DataBound Ereignis oder Row_Created kannst Du noch auf die Spalten zugreifen.

So weit bin ich noch nicht. Ich hatte eben nur gedacht, das wenn die Ausgabe 6 Spalten liefert, das ich über einen Index drauf zu greifen kann. Dieser ist jedoch 0 im Debugger. Warum auch immer.