Wie dynamisch aktualisieren .NET-Datenbindung repeater-Steuerelement
Ich habe eine .NET repeater
Kontrolle, dass data-bound
zu einer Liste. Als Teil der Repeater ist Item Collection
habe ich einen "Entfernen-Button", die effektiv entfernt das aktuelle element in der Liste.
Diese Werke, in der code-behind-kann ich erfolgreich entfernen eines Elements aus der datasource
des Repeater.
Mein problem ist :, wenn ich zurücksetzen die aktualisierte datasource
- und call - MyRepeater.DataBind()
wieder, die Repeater - Schnittstelle nicht aktualisieren mit dem Artikel entfernt.
Ich bin auf der Suche nach dem Ereignis im wesentlichen Neuzeichnen oder regenerieren der Repeater auf der Grundlage der aktualisierten Liste. Vielen Dank für jegliche Hinweise oder Beispiele.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie die "DataBind" - Methode auf Ihre datasource dann call "DataBind" auf Ihre Repeater-Steuerelement.
Sind Sie Fütterung die aktualisierten Daten Quelle?
Wenn Sie die Einstellung Datenquelle im code-behind, müssen Sie es mit aktualisierten Daten dann Aufruf von DataBind-Methode.
Lief ich in etwas wie, dass Sie mit einer Repeater-Steuerelement und ein DataTable-Quelle.
Gab es keine Refresh-Methode in DataTable, aber den Aufruf DataTable.EnableDynamicData(typeof(DataTable)) auf erstmalige laden der Seite hat das problem gelöst.
Ich hatte eine ähnliche situation...ein repeater an eine xmlDataSource, die beide in einem UpdatePanel. Ich wollte, damit der Benutzer geben Sie einen Namen in einer Zeit, klicken Sie dann auf die Schaltfläche "Hinzufügen", um die Liste zu aktualisieren, die in den repeater.
Ich "EnableViewState" False " auf dem repeater und der xmlDataSource und setzen Sie "EnableCaching" auf der xmlDataSource False als gut. Ich habe die Data-Eigenschaft der xmlDataSource, genannt DataBind für die xmlDataSource, legen Sie die DataSourceID-Eigenschaft des repeater -, dann rief DataBind für den repeater. Das war jetzt vielleicht übertrieben...aber es hat geklappt. Vielleicht wird dies helfen.
UPDATE: ich habe festgestellt, dass durch die Einstellung EnableViewState auf False, auf das repeater-Steuerelement, meine ItemCommand-Ereignis nicht ausgelöst. Aber ich denke, Sie müssen nur EnableViewState/EnableCaching auf False für die Datenquelle...ich habe wieder die EnableViewState-Einstellung auf True für den repeater und jetzt scheint alles gut.
Zwingen Databind-Methode wird normalerweise durchgeführt, in denen die automatische Datenbindung erfolgt in der PreRender Veranstaltung.
In der Regel, wenn Sie haben Sie entfernen Sie im click-Ereignis der repeater sollte aktualisieren, indem sich seit automatisch in der preRender-Steuerelemente auf der Seite sind DataBind(). Hier ist, was der doc von microsoft sagen :
Quelle
Also wahrscheinlich Sie betroffen Youritem.DataSource = Liste, aber MS vorschlagen, tun YourItem.DataSourceID = Liste.ID, oder so ähnlich.
Hoffe es hilft