Frage

Ich habe eine .NET repeater Steuerelement, das data-bound auf eine Liste ist. Im Rahmen des Item Collection Repetierarmbrust, habe ich einen „Remove-Knopf“, der dieses aktuelle Listenelement effektiv entfernt.

Das funktioniert, in Code-behind kann ich erfolgreich ein Element aus der datasource des Repeater .

entfernen

Mein Problem ist dieses . , wenn ich Reset die aktualisierte datasource und rufen MyRepeater.DataBind() wieder, die Repeater Schnittstelle aktualisieren nicht mit dem Artikel entfernt

Ich bin für die Veranstaltung suchen, um im Wesentlichen neu zu zeichnen oder aktualisieren Sie die Repeater auf der Grundlage der aktualisierten Liste. Vielen Dank für alle Hinweise oder Beispiele.

War es hilfreich?

Lösung

Sie müssen die 'DataBind' Methode auf Ihrer Datenquelle nennen, und Aufruf 'DataBind' auf Repeater-Steuerelement.

Andere Tipps

Sind Sie aufgefrischt Datenquelle Fütterung?

Wenn Sie Datenquelle in setzen Code-behind, müssen Sie es mit aktualisierten Daten setzen dann DataBind Methode aufrufen.

Ich lief in so etwas mit einer Repeater-Steuerung und eine Datatable-Quelle.

Es war keine Refresh-Methode in Datatable, aber calling DataTable.EnableDynamicData (typeof (Datatable)) bei der ersten Seite zu laden, das Problem gelöst.

hatte ich eine ähnliche Situation ... einen Repeater gebunden an eine XmlDataSource, die beide in einem Update. Ich wollte der Benutzertyp zu einem Zeitpunkt in einem Namen dann lassen, klicken Sie auf eine Schaltfläche „Hinzufügen“ die Liste in den Repeater zu aktualisieren.

Ich habe „EnableViewState“ auf False auf dem Repeater und die XmlDataSource und „EnableCaching“ auf der XmlDataSource auf False als auch gesetzt. Ich habe die Daten-Eigenschaft des XmlDataSource, DataBind für die XmlDataSource, stellen Sie die DataSourceID Eigenschaft des Repeaters genannt, dann DataBind für den Repeater genannt. Vielleicht war das übertrieben ... aber es funktionierte. Vielleicht wird dies helfen.

UPDATE: Ich fand, dass EnableViewState auf False auf dem Repeater-Steuerelement, mein ItemCommand Ereignis würde nicht ausgelöst durch das Setzen. Aber ich denke, Sie setzen müssen EnableViewState / EnableCaching auf False für die Datenquelle ... Ich habe die EnableViewState Einstellung auf True für den Repeater zurückgekehrt und jetzt scheint alles gut.

Erzwingen Databind wird normalerweise durchgeführt, wo die automatische DataBind in dem fertig ist PreRender Ereignis.

Normalerweise, wenn Sie das Entfernen in dem Click-Ereignisse tun, der Repeater von selbst, da automatisch im PreRender, Kontrollen auf Seite sind DataBind () aktualisieren soll. Hier ist, was der Doc von Microsoft sagen:

  

PreRender. Vor diesem Ereignis jedes Daten gebunden Steuerelement, dessen tritt DataSourceID Eigenschaft gesetzt nennt seine Methode DataBind

Quelle

So wahrscheinlich betroffen Sie Youritem.DataSource = Liste, aber MS vorschlagen YourItem.DataSourceID tun = List.ID, oder so ähnlich.

Hoffe, es hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top