MasterPage Dropdown -Liste behalten den ausgewählten Index nicht bei
-
03-07-2019 - |
Frage
OK, meine Meisterseite hat einen Dropdown, der die Größe steuert, die viele Dinge betrifft. Ich muss auf den Dropdown -Index von Inhaltsseiten zugreifen, damit ich diesen Code mit diesem Code mache.
public partial class MasterPage : System.Web.UI.MasterPage
{
public DropDownList MySize { get { return _ddlSize; } }
}
Ich verwende AJAX und wenn die Größe das Menü auf der Meisterseite ändert, ändert sich einwandfrei.
Wenn ich jedoch auf das aktualisierte Menü klicke, verwendet es den Zero -Index der Dropdown -Liste in meiner Inhaltsseite auch über visuell, die Größe, die ich ausgewählt habe.
int size = Convert.ToInt32(Master.MySize.SelectedItem.Text); //Uses 0 index :(
Ich möchte keine Sitzung verwenden, ich verstehe einfach nicht, warum dies nicht 100% der Zeit funktioniert. Hat jemand irgendwelche Ideen?
Lösung
Ich habe es herausgefunden!
Ich habe den Dropdown auf ein öffentliches statisches Objekt gesetzt
public static DropDownList MySize;
Dann habe ich es einfach bei jedem geladenen Meisterwerk der Seiteninstanz festgelegt.
protected void Page_Load(object sender, EventArgs e)
{
MySize = _ddlSize;
}
Das Aufrufen der Dropdownlist ist etwas anders, da es sich um ein statisches Objekt handelt.
MasterPage.MySize.SelectedItem.Text
Aber es funktioniert auf allen Inhaltsseiten, die von der Meisterseite stammen.
Andere Tipps
Haben Sie diese Lösung in einem Multi-User-Szenario überprüft, da der Wert statisch ist, wird er über verschiedene Benutzer hinweg reflektiert
Der auf der Masterseite festgelegte Ansichtsstatus sollte den Wert des Dropdown -Listen beibehalten oder versuchen, versteckte Steuerelemente zu verwenden, um den Wert zu halten