2009-05-11 7 views
0

Ich verwende 1 main update panel, die Search criteria und Search button enthält.Mehrere Update-Panels

In dieser Hauptaktualisierung verwende ich 4 update panels.

Diese vier Update-Panels holen die Suchergebnisse von verschiedenen 4 SQL quires. Momentan habe ich das gemacht.

Aber meine Frage ist, wird derzeit die Seite nach dem Abrufen aller 4 Update-Panels angezeigt werden.

Aber ich brauchte, Wenn ein Panel volle Aufzeichnung erhält, wird ein Panel zur Anzeige kommen. dann das nächste Panel Panel .... So.

Bitte helfen Sie mir.

Antwort

0

Wenn ich Sie richtig verstehe, möchten Sie die innere UpdatePanels fortlaufend aktualisieren, wenn die äußere UpdatePanel aktualisiert wird? Wenn dies korrekt ist, werden standardmäßig alle verschachtelten UpdatePanels aktualisiert, wenn das übergeordnete UpdatePanel aktualisiert wird.

Es klingt wie wäre es besser, nicht die äußere UpdatePanel haben, setzen Sie einen Trigger auf (innen) UpdatePanel 1 zu aktualisieren, wenn Suche geklickt wird, einen Trigger auf UpdatePanel 2 gesetzt zu aktualisieren, wenn UpdatePanel 1 Updates, etc, etc.

Alternativ können Sie AJAX-Aufrufe für Seitenmethoden oder Webdienste implementieren, um den Inhalt des UpdatePanels aufzufüllen und stattdessen UpdatePanels zu entfernen.

+0

Wenn ich äußere Haupt-Update-Panel entfernt, wird die Seite volle Post zurück erhalten. Das ist nicht erlaubt. –

+0

Sind Sie sich sicher? Es ist eine Weile her, seit ich UpdatePanels benutzt habe, aber IIRC, der Postback der ganzen Seite wird abgefangen, wenn die Submit-Schaltfläche ein AsyncPostbackTrigger für ein UpdatePanel ist (in diesem Fall, setze es als AsyncPostbackTrigger auf (innerem) UpdatePanel 1). –

+0

Hai, ich habe ein Problem hier. Ich habe es in der AsyncPostbackTrigger-Methode versucht. Aber hier benutze ich webusercontrols in den Seiten. Das ist das äußere Hauptdatenfeld in einem Benutzersteuerelement. In dieser Seite erscheint das 4-Update-Panel in Seite 4 Benutzereinstellungen. Also, wenn ich versuche, AsyncPostbackTrigger zu verwenden, erwartet es das SearchButton innerhalb des gleichen Benutzersteuerelements. Bitte hel mich. –

0

Jason Ich denke, dass dein Problem von der Tatsache herrühren kann, dass du deine 'SQL' UpdatePanels im 'Suchen' Update Panel verschachtelt hast. Vielleicht möchten Sie sie trennen und sich AsyncPostBack-Trigger ansehen, um alle vier auszulösen, sobald Sie die Suchkriterien eingegeben haben.

+0

posts ich gebe die Suchkriterien in Hauptupdatebedienfeld ein und klicke den Suchknopf. Die Innter 4 Update Panels laden ihr Datagrid mit den oben genannten Suchkriterien. Jetzt funktioniert dieser Prozess richtig zu mir. Aber meine Frage ist, derzeit wird das Suchergebnis nur nach dem Holen von 4 Update-Panels angezeigt. Dies ist nicht erlaubt. Wenn ein Update-Panel Datensätze sofort abruft, wird es dem Benutzer angezeigt, und nach dem Abrufen des zweiten Update-Panels zeigt die Seite dieses an. Die inneren Felder wurden nur für Anzeigesuchdatensätze verwendet.Keine Aktualisierung dort. Bitte hilf mir. –

+0

Wieder würde ich sehen, wo der Search cmd abgefeuert wird, auf dem Hauptupdatepanel. Wenn Sie diese Datagrid-Update-Panels verschachteln, werden sie unabhängig voneinander mit einem UpdateMode, der auf 'Conditional' gesetzt ist, und Ihrem Such-Button als Auslöser für jedes DataGrid-UpdatePanel gesetzt. –

+0

Der AsynPostBackTrigger gibt Ihnen die Möglichkeit, ein "teilweises" Postback auf Ihrer "Suche" -Schaltfläche durchzuführen. –

0

Die Frage ist nicht klar, aber Sie können die Ergebnisse der vier Abfragen im Selected-Ereignis jedes der DataSourceControls überprüfen, die Sie verwenden (ich nehme an, Sie tun), und wenn Sie einen Datensatz in einem Set in der gefunden vorheriger Satz, dann wenden Sie Ihre benutzerdefinierte Anpassung an.

Eine Nebenfrage: warum 4 Update-Panels verwenden, während die ganzen 5 Panels von der gleichen Quelle (der Such-Taste) ausgelöst werden?

+0

Hai, eigentlich hat das Main-Update-Panel nur Suchkriterien, die inneren Update-Panels haben separate separate Ping-Buttons. Bitte hilf mir. –

+0

Ich bin immer noch nicht klar zu verstehen, aber wenn Sie die Daten in den 4 Panels sequentiell als Reaktion auf Benutzeraktivität bevölkern möchten, dann sollten Sie bestimmte Ereignisse für das erste Raster (RowSelecting zum Beispiel) behandeln und das nächste Raster mit Code auffüllen (grid.DataBind()), aber lassen Sie sie sich nicht automatisch als Reaktion auf die Klicks auf die Suchschaltfläche binden. –

Verwandte Themen