Laden...

[erledigt] Seite wird bei geänderter DDL 2mal aufgerufen

Erstellt von AngelOfEffekt vor 12 Jahren Letzter Beitrag vor 12 Jahren 856 Views
A
AngelOfEffekt Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren
[erledigt] Seite wird bei geänderter DDL 2mal aufgerufen

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

16.842 Beiträge seit 2008
vor 12 Jahren

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.

A
AngelOfEffekt Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren
Microsoft unterstützt verschachtelte

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.

691 Beiträge seit 2007
vor 12 Jahren

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

16.842 Beiträge seit 2008
vor 12 Jahren

Anscheinend ist das bei WebForms gang und gebe - tatsächlich. Bei MVC gibts hierfür "sections".

A
AngelOfEffekt Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren
response.redict war/ist das problem

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