2009-07-30 3 views
0

Ich verwende Masterseite und untergeordnete Seiten in Asp.net-Anwendung. Ich habe eine Dropdown-Liste und Treeview (die sitemapdatasource verwendet) auf der Masterseite. Wenn ich auf einen der TreeView-Knoten klicke, wird die Seite auf die untergeordnete Seite umgeleitet. Das Problem ist, wenn Sie einen Wert in der Drop-Down-Liste auswählen und auf den TreeView-Knoten klicken, sollte der ausgewählte Wert der Ext-Box auf der Child-Seite zugewiesen werden. Dies funktioniert nicht. master page_load() wird nach dem Kind ausgeführt page_load(), ist es deswegen?Masterseitensteuerelemente werden zurückgesetzt

Hilf mir dabei.

Dank Rupa

+0

Im Gegensatz zu seinem Namen ist eine Masterseite wirklich ein Kind Steuerelement auf der Seite. –

Antwort

2

Da Sie nicht direkt eine Masterseite Ich gehe davon aus sehen können, Sie haben zwei Seiten, die eine gemeinsame Master-Seite verwenden. Ich gehe auch davon aus, dass diese Masterseite eine Dropdown-Liste und eine Baumansicht-Sitemap anzeigt.

Basierend auf diesem würde ich denken, dass was am meisten passiert ist, dass Ihre Treeview ist klar, alte HTML-Links (d. H. <a href='http://stackoverflow.com'>...). Wenn Sie darauf klicken, führt Ihr Browser eine Anfrage für die zweite untergeordnete Seite aus. Standardmäßig werden keine Daten von der ersten untergeordneten Seite an die zweite übergeben.

Es gibt verschiedene Möglichkeiten, dieses Verhalten zu ändern. Zuerst sollten Sie die AutoPostBack Eigenschaft auf true und das Handle SelectedIndexChanged Ereignis auf Ihrer Dropdownliste festlegen. In diesem Fall können Sie den Wert des Dropdown-Menüs speichern, damit es später wiederhergestellt werden kann.

Der einfachste Weg, um diesen Wert zu speichern, ist wahrscheinlich, es in die Sitzung zu setzen.

Session["myvar"] = dropdown.SelectedIndex; 

Ihre Masterseite können diesen Wert wiederherzustellen, wenn die untergeordnete Seite Lasten wie etwas zu tun:

if (!IsPostBack && Session["myvar"] != null) 
    dropdown.SelectedIndex = (int)Session["myvar"]; 

Eine weitere Option den Wert auf die Abfragezeichenfolgeflag jeder URL in der Baumansicht hinzuzufügen wäre.

+0

Danke..es hat mir geholfen. – ASD

+0

Ein Zweifel ist, Session-Variablen in der Anwendung verwenden ist gut oder nicht für eine lange Zeit Becoz Session Timeout-Eigenschaft ist da..so Können Sie das erklären? – ASD

+0

Ja, es ist möglich, dass die Sitzung eine Zeitüberschreitung hat. In diesem Fall würde sie genauso funktionieren wie in Ihrer Frage. Wenn Sie jedoch die Anmeldung Ihrer Benutzer verlangen, besteht wahrscheinlich bereits ein Problem, wenn die Sitzung abläuft. – drs9222