3 Stimmen

Alle Elemente aus dem DataSource des Repeaters abrufen, wenn die Paginierung verwendet wird

Ich habe eine Repeater-Control, die an eine PagedDataSource gebunden ist, deren Datenquelle eine Liste von benutzerdefinierten Steuerelementen ist, die ich erstellt habe. Diese benutzerdefinierten Steuerelemente enthalten ein paar Textfelder.

Ich habe eine Speichern-Schaltfläche, und wenn sie geklickt wird, möchte ich die Daten in allen benutzerdefinierten Steuerelementen in einer Datenbank speichern, unabhängig davon, auf welcher Seite sie sich befinden - aber derzeit habe ich nur Zugriff auf die benutzerdefinierten Steuerelemente auf der aktuellen Seite.

Was ich versucht habe zu tun, ist, im btnSave_Click-Ereignis eine neue temporäre Datenquelle zu erstellen, die der aktuellen entspricht, außer dass es sich nicht um eine PagedDataSource handelt. Auf diese Weise enthält mein Repeater alle benutzerdefinierten Steuerelemente - ABER - die Änderungen in den Textfeldern sind nicht mehr verfügbar. Dann habe ich versucht, JavaScript onchange-Ereignisse auf den Textfeldern im benutzerdefinierten Steuerelement hinzuzufügen, damit ein Postback ausgelöst würde, wenn der Text geändert wurde, und die Eigenschaft im Codebehind des Benutzersteuerelements aktualisiert werden würde. Das hat auch nicht funktioniert.

Irgendwelche Ideen?

0voto

Joe Punkte 1619

Speichern Sie die geänderten Werte bei jedem Seitenindexänderungsereignis (oder Vorher-/Weiter-Schaltflächen) in Ihrem Persistenzobjekt (Liste).

http://www.dotnetfunda.com/articles/show/1611/how-to-select-multiple-records-from-multiple-pages-of-the-gridview-and

0voto

web_bod Punkte 5698

Der Grund, warum Ihre nicht-pagedDataSource leer ist, liegt daran, dass die Änderungen in Ihrem Textfeld auf dem Client und nicht auf dem Server vorhanden sind - Sie müssen die Werte Ihrer Steuerelemente mit den leeren Slots in Ihrem Repeater synchronisieren.

-1voto

Monika Punkte 2162

Der Repeater verfügt nicht über eine integrierte Paginierung (wie der GridView oder andere komplexe Steuerelemente), daher bietet er keine Ereignisse wie das PageIndexChanging-Ereignis an. Ich gehe daher davon aus, dass Sie Ihre eigene Seiten-Navigationsimplementierung haben. Sie sollten also die Funktion aufrufen, die Sie innerhalb dieser implementierten Funktion präsentiert haben.

-1voto

user1783456 Punkte 29

Versuchen Sie, eine generische Liste und die Überspringen- und Nehmen-Methoden davon zu verwenden

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