Fragensteller
Vom Repeater ins Array?

Frage
-
Hallo,
ich hoffe die Frage ist nicht all zu blöd, bin immer noch ein totaler Neuling.
Also ich habe ein Repeater der aus einer sqlDataSource heraus befüllt wird:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:dataConnection %>" SelectCommand="SELECT * FROM ( SELECT *, row_number() over (PARTITION BY ablesung_zaehler_id ORDER BY ablesung_id DESC) as row_number FROM [v_zaehlerstand_webportal_fuer_masseneingabe] ) AS rows WHERE (([asp_id] = @asp_id) AND ([geb_id] = @geb_id) AND ([zaehlerart_id] = @zaehlerart_id) AND ([zaehler_inaktiv] = @zaehler_inaktiv) AND row_number = 1)"> <SelectParameters> <asp:SessionParameter Name="geb_id" SessionField="geb_id" /> <asp:SessionParameter Name="zaehlerart_id" SessionField="zaehlerart_id" /> <asp:SessionParameter Name="asp_id" SessionField="ansprechpartner" Type="Int32" /> <asp:SessionParameter Name="zaehler_inaktiv" DefaultValue="false" /> </SelectParameters> </asp:SqlDataSource> </p> <p> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> <table class='zaehlerAuswahlTable'> <tr> <td style="max-width:0px; visibility:hidden"><%#Eval("zaehler_einbauort_id")%></td> <td style="max-width:0px; visibility:hidden"><%#Eval("ablesung_zaehler_id")%></td> <td style="width:55px"><b>Zählernr.:</b></td> <td style="width:102px"><%#Eval("ablesung_zaehler_nr")%></td> <td style="width:95px"><b>Letzte Ablesung:</b></td> <td style="width:70px"><%#Eval("ablesung_dat")%></td> <td style="width:90px"><b>Letzter Stand:</b></td> <td style="width:112px; text-align:right"><%#Eval("ablesung_stand")%> <%#Eval("zaehlerart_einheit")%></td> <td style="width:76px"><b>Neuer Stand:</b></td> <td style="width:96px"><asp:TextBox ID="txtNeuerStand" runat="server" style="width:96px"></asp:TextBox></td> </tr> </table> </ItemTemplate> </asp:Repeater>
Ich hab nun also quasi eine Tabelle, und in jeder Zeile eine TextBox, in der ich einen Inhalt reinschreiben kann!
Nun will ich per Buttonklick (Ein Button, der eine Massenprozedur auslösen soll) jede Zeile als einen Datensatz in einer Tabelle auf dem sqlServer Manager speichern lassen! Ich hätte gedacht, ich übergebe das ganze an ein Array und arbeite die Zeilen dann ab. Ich finde (auch Mangels Vorwissen) keine Möglichkeit, den Inhalt des Repeaters an ein Array zu übergeben!
Hat Jemand einen Ansatz oder Hilfestellung? Oder einen Alternativplan?
- Verschoben Stefan FalzModerator Samstag, 19. September 2015 09:17 ASP.NET Frage
Alle Antworten
-
Hi,
Ideen gibt es genug. Lediglich ist unklar, wo das Problem liegt. Im SQL Server Manager kann man nichts speichern.Wenn Du die Abfrage im CodeBehind ausführst, dann kannst Du einen Datenpuffer füllen und diesen dann ausgeben. Es bleibt die Frage, wohin?
--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks -
Also der Repeater befüllt sich aus den Datensätzen der SqlDataSource, die er sich aus meiner Datenbank zieht.
Dann hab ich ja im Grunde eine Tabelle mit Datensätzen, an dessen Ende eine Textbox steht, in der man einen Wert eintragen soll.Ein Button unter der Tabelle soll dann eine Prozedur auslösen, die den Inhalt der, durch den Repeater erstellten, Tabelle, mitsamt dem Inhalt in den Textboxen an ein Array übergibt.
Ich waage mal die Behauptung, dass es problematisch wird aufgrund der Textbox und der ID. Falls nicht brauch ich dennoch einen Ansatz, ich bin da leider noch blutiger Anfänger und habe Stand jetzt keine Ahnung, wie ich das hinbekommen soll.
Verzeihung für die falsche Begrifflichkeit. Ich hab eine Datenbank auf dem "Sql Server 2014 Management Studio" hinterlegt. Dort eine entsprechende Tabelle, in die die Zeilen aus der Tabelle/Array gespeichert werden sollen.
-
Hi,
bei Deinem Code handelt es sich um eine Webanwendung. Beim Request wird die Seite aufgebaut, dann die Daten geholt, dann gerendert (html erzeugt), als Response an den Client geschickt und dann vergisst der Server alles. Dann macht der Anwender etwas und für den Server nach gefühlten "Lichtjahren" beginnt der Prozess erneut (Round-Trip). Er weiß nichts mehr von dem, was da gewesen war. Jetzt beginnt die erneute Bereitstellung der Daten, die ergänzt werden mit den Veränderungen durch den Anwender (im Browser). Dazu gehört auch das Submit von einem Input-Tag. Auf das muss reagiert werden, indem die nachgeladenen Daten mit den vom Browser nachgeladenen Veränderungen über ein SQL-Update, -Insert oder -Delete an den SQL Server. Das ist möglich per Code oder auch bei entsprechender Konfiguration der SQLDataSource. Da der Repeater aber nur ein Anzeige-Element ist, kann in diesem Fall das Update nur per Code ausgeführt werden.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks -
Hallo Herr Fleischer,
ich verstehe leider nur teils worauf das hinausläuft.
Also ich habe den Repeater und der gibt mir nun beispielsweise 5 Datensätze heraus, jeweils mit der Textbox, diese füll ich jeweils aus. Und es gibt einen übergeordneten Button - den drücke ich und will nun aus diesen 5 angezeigten Datensätzen, wo die Textbox ausgefüllt ist jeweils einen neuen Datensatz erstellen.Ist das möglich?
Und wenn ja, gibt es vielleicht einen Ansatz, oder irgendeinen Forumsbeitrag zur Hand, den ich bisher leider noch nicht gefunden habe.
VG