Hi,
ich arbeite an einer WebApplikation in ASPX für eine Bestandsführung.
Die Struktur ist für meinen Teil des Projektes folgende
MasterPage -> MasterPage -> ContentPage
Die 2. Master enthält eine DDL (DropDownList), über die man ein Datum angibt. SelectedIndexChanged sendet als Event die Seite zum Server.
Ist selectedIndexChanged nicht urheber des Aufrufes, funktioniert alles einwandfrei.
Ist selectedIndexChanged Urheber, wird die gesamte Seite 2 mal durchgearbeitet.
Das wäre ja im Grunde nicht soo das Problem (naja, später beim Werte in DB schreiben schon^^), nur sind im 2. Durchlauf alle Seitenwerte weg - so auch die selectedValue der DDL.
Im ersten existiert sie, im 2. nicht mehr.
Wenn die Seite dann wieder aufgebaut ist, wird aber in der DDL der Inhalt des zuletzt angewählten Index vorselektiert.
Mein Gedanke war schon, dass der was verwift, sodass sich der Index der DDL wieder ändert und das Event erneut gefeuert wird...
Dass ich 2 MasterPages durchlaufe ist sicher nicht der Fehler oder?
Bitte um Rat
Mit freundlichen Grüßen
AngelOfEffekt
Dass ich 2 MasterPages durchlaufe ist sicher nicht der Fehler oder?
Bin nicht Fit in WebForms. Aber wieso hast Du zwei MasterPages.
Hört sich auf alle Fälle nicht sonderlich gesund an. Probier's mal mit nur einer. Finde ich schon sehr merkwürdig und würde ich nicht als Fehlerquelle ausschließen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich hab nochmal recherchiert und bin mehrfach darauf gestoßen, unter Anderem auch direkt auf der MSDN von Microsoft, dass das mehrfache Verschachteln der Masterpages gelobt und angepriesen wird.
Ich habe bis jetzt mal ein paar weitere Verschachtelungen versucht, ohne das ein solches Problem wieder ausgetreten ist.
Ich guck nochmal wegen dem selectedIndexChanged. Schließlich gerät ja alles aus dem Lot, nachdem ich das Event hervorgerufen habe.
Verschachtelte MasterPages stellen mit der neusten ASP.Net Version, meinem Kenntnisstand nach, keine Probleme dar.
Ein solches Konstrukt kann durchaus sinnvoll sein. Hier lässt sich z.B. ein äußeres Grundlayout als obere MasterPage definieren.
Für ein zwei- und dreispaltiges Design könnte man nun zwei weitere MasterPages erstellen, die die äußere MasterPage verwenden. (Stichwort Code- / Markupredundanz)
Wie du selber schon sagst, gehst es nur um ein bestimmtes Event, undzwar selectedIndexChanged.
Möglicher Auslöser wäre hier, das du auf Page-Ebene AutoWireUpEvent="true" hast und zusätzlich das Event noch im Code-Behind abonnierst.
Wenn dies nicht der Fall, gehts es daran, andere Fehlerquellen per Google zu suchen.
Aus Neugierde habe ich selber mal gegoogelt:* Du verwendest zusätzlich noch clientseitigen Code, der für zwei Postbacks sorgt. Hier solltest du auchmal überprüfen, ob nur das Event zweimal ausgeführt wird, oder ob tatsächlich die Seite zweimal aufgerufen wird.
Solltest du eine Lösung finden, so bitte ich dich, uns diese mitzuteilen.
mit freundlichen Grüßen,
Tomot
Projekte: www.gesellschaftsspieler-gesucht.de
Anscheinend ist das bei WebForms gang und gebe - tatsächlich. Bei MVC gibts hierfür "sections".
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das Unternehmen, für das ich arbeite hat auf der obersten Masterpage in der methode selectedindexchanged eine
response.redict(Context.Request.Url.AbsoluteUri);
drin
Warum die das so gemacht haben und wie die somit bisher sinnvoll das Datum auslesen konnten werde ich wohl noch erfragen müssen...man stelle ich vor allem db-einträge vor.
also ist es garkein Fehler in diesem Sinne und vor allem nicht von mir (hehe, soviel Zeit sinnlos dahin).
Dennoch danke