Tach
Ich habe da ein kleineres Problem. Ich habe mir eine Masterpage für eine Art Portal aufgebaut.
Das Masterpage enthält das Menu und die Login Informationen des Users. Unten dann 3 ContentPlace Holders für Links, Mitte, Rechts.
Links: Suchoptionen mit Webparts und UserControls
Mitte: GridView und DetailView
Rechts: Statistikauswertungen mit WebParts und UserControls
Nun möchte ich aber immer nur den Part nachladen lassen, der auch einen Postback macht, also entweder Links, Mitte oder Rechts.
Ist das designtechnisch zu machen dass ich zb nur die Linke Sparte vom Server neu anfordere und der Rest unberührt bleibt, wenn ja, wie kann ich das realisieren?
Hallo,
pack in die 3 PlaceHolder einfach 3 IFrames.
Vorteil, die von dir gewünschte Funktionalität ist vorhanden
Nachteil, sollen bei einem PostBack Controls aus unterschiedlichen Frames geändert werden, wirds sehr umständlich.
Original von Grotesk
Nun möchte ich aber immer nur den Part nachladen lassen, der auch einen Postback macht, also entweder Links, Mitte oder Rechts.
Warum möchtest Du das machen, wenn ich fragen darf?
Hi Kai
Zum einen wollte ich das so, weil ich Links viel mehr PostBacks machen wegen der Suchauswahl und ich auf die Clicks reagieren muss um die Controls anzupassen (zb. Wenn eine Checkbox gedrückt würde muss ich andere disablen etc).
Habe aber nun bemerkt, dass das Postback handling von FireFox und IE unterschiedlich gehandhabt wird. Da ich mit FireFox arbeite aber mit IE entwickeln muss (Kunden) merkt man dass der Firefox die Seite anfordert, ohne das dieses hässliche reloaden der Seite stattfindet. Im IE6.0 und IE7.0 BETA ist das vorhanden.
Daher wollte ich es so viel wie möglich verhindern, dass die ganze Seite neu geladen wird sondern nur der jeweilige Teil der viele Postbacks erfordert.
Ich kenn mich leider mit JScript nicht so gut aus und finde wenig Beispiele, aber meine Idee wäre auch gewesen das CheckBox Handling per Script am Client zu lösen da ich ja nur Checkboxen ausblende etc je nach auswahl.
Erst am Schluss wenn der User auf einen Button klickt, soll dann die Suche ausgelöst werden.
Du könntest Ajax verwenden, aber dafür müsstest du dich schon ein wenig in Javascript einarbeiten. So könntest du aber anfragen an den Server stellen und z. B. eine Suche durchführen ohne die Seite neu zu laden...
ciao Anke
Original von Grotesk
Habe aber nun bemerkt, dass das Postback handling von FireFox und IE unterschiedlich gehandhabt wird. Da ich mit FireFox arbeite aber mit IE entwickeln muss (Kunden) merkt man dass der Firefox die Seite anfordert, ohne das dieses hässliche reloaden der Seite stattfindet. Im IE6.0 und IE7.0 BETA ist das vorhanden.
Nein, eigentlich nicht. Beide Browser laden die Seite neu...mag sein, dass die Anzeige vielleicht etwas anderes vermuten lässt.
Daher wollte ich es so viel wie möglich verhindern, dass die ganze Seite neu geladen wird sondern nur der jeweilige Teil der viele Postbacks erfordert.
Ich kenn mich leider mit JScript nicht so gut aus und finde wenig Beispiele, aber meine Idee wäre auch gewesen das CheckBox Handling per Script am Client zu lösen da ich ja nur Checkboxen ausblende etc je nach auswahl.
Erst am Schluss wenn der User auf einen Button klickt, soll dann die Suche ausgelöst werden.
Je nachdem wie der Aufbau ausschaut, könntest Du dieses Problem mit AJAX lösen. Allerdings müsstest Du dich dann ein wenig in JavaScript einarbeiten.
Was spricht denn dagegen jedes Mal ein reload der Seite zu machen? Wenn Du den Output der Seite gecached hast, sollte das super fix gehen...
Hi Kai.
Es spricht gar nichts gegen einen Reload, die Seite ist eigentlich sehr simpel, ich war mir aber nicht sicher, ob man das irgendwie besser machen kann, daher müsste ich aber dann ein Script suchen, welches mir den Scroll Faktor wieder setzt, wenn ein Postback geschieht.
Mein Inhalt ist zwar einfach aber dafür nicht ohne zu scrollen anzeigbar, daher das vermeiden der PostBacks.
Ah, ok. Vielleicht hilft Dir folgender Artikel weiter:
Retaining Scroll Position After a Postback:
http://dotnetjunkies.com/Article/E474B0FC-20D2-48B3-93B5-DC4CB3C4A1AB.dcik