Okay, also ich habe ein DropDownList-Steuerelement, das 50 ListItems enthält, eine für jeden der 50 Zustände. Der Textwert gibt jeden Statusnamen wieder, der jeden Textwert eindeutig macht. Die Werteigenschaft jedes Listenelements enthält jedoch die aktuelle Steuerrate dieses Status, was bedeutet, dass einige der Werte nicht eindeutig sind. Postbacks auf diesem Steuerelement ändern ständig den ausgewählten Artikel. Gibt es dafür eine Arbeit?DropDownList mit den nicht eindeutigen Werten verschraubt viewstate/postbacks
Kopieren Sie zum Kopieren den folgenden Code in ein neues Webformular. Es ist nur eine einfache DropDownList. Versuchen Sie, verschiedene Zustände auszuwählen. Einige von ihnen bleiben, andere nicht. Versuchen Sie zum Beispiel, "Idaho" als Staat auszuwählen; es kehrt aus irgendeinem Grund nach Arkansas zurück. Dies geschieht, bevor das OnSelectedIndexChanged-Ereignis ausgelöst wird, denn wenn ich "Idaho" wähle und dann das ausgewählte Element in der Ereignismethode beim Postback lese, ist das ausgewählte Element Arkansas! Sehr nervig.
State:<br />
<asp:DropDownList BorderWidth="3px" AutoPostBack="true" BackColor="#ffffcc" ID="ddlBillingState"
runat="server">
<asp:ListItem Value="0" Text="Not Specified"></asp:ListItem>
<asp:ListItem Value="4" Text="Alabama"></asp:ListItem>
<asp:ListItem Value="0" Text="Alaska"></asp:ListItem>
<asp:ListItem Value="5.6" Text="Arizona"></asp:ListItem>
<asp:ListItem Value="6" Text="Arkansas"></asp:ListItem>
<asp:ListItem Value="8.25" Text="California"></asp:ListItem>
<asp:ListItem Value="2.9" Text="Colorado"></asp:ListItem>
<asp:ListItem Value="6" Text="Connecticut"></asp:ListItem>
<asp:ListItem Value="6" Text="District of Columbia"></asp:ListItem>
<asp:ListItem Value="0" Text="Delaware"></asp:ListItem>
<asp:ListItem Value="6" Text="Florida"></asp:ListItem>
<asp:ListItem Value="4" Text="Georgia"></asp:ListItem>
<asp:ListItem Value="4" Text="Hawaii"></asp:ListItem>
<asp:ListItem Value="6" Text="Idaho"></asp:ListItem>
<asp:ListItem Value="6.25" Text="Illinois"></asp:ListItem>
<asp:ListItem Value="7" Text="Indiana"></asp:ListItem>
<asp:ListItem Value="6" Text="Iowa"></asp:ListItem>
<asp:ListItem Value="5.3" Text="Kansas"></asp:ListItem>
<asp:ListItem Value="6" Text="Kentucky"></asp:ListItem>
<asp:ListItem Value="4" Text="Louisiana"></asp:ListItem>
<asp:ListItem Value="5" Text="Maine"></asp:ListItem>
<asp:ListItem Value="6" Text="Maryland"></asp:ListItem>
<asp:ListItem Value="6.25" Text="Massachusetts"></asp:ListItem>
<asp:ListItem Value="6" Text="Michigan"></asp:ListItem>
<asp:ListItem Value="6.875" Text="Minnesota"></asp:ListItem>
<asp:ListItem Value="7" Text="Mississippi"></asp:ListItem>
<asp:ListItem Value="4.225" Text="Missouri"></asp:ListItem>
<asp:ListItem Value="0" Text="Montana"></asp:ListItem>
<asp:ListItem Value="5.5" Text="Nebraska"></asp:ListItem>
<asp:ListItem Value="6.85" Text="Nevada"></asp:ListItem>
<asp:ListItem Value="0" Text="New Hampshire"></asp:ListItem>
<asp:ListItem Value="7" Text="New Jersey"></asp:ListItem>
<asp:ListItem Value="5" Text="New Mexico"></asp:ListItem>
<asp:ListItem Value="4" Text="New York"></asp:ListItem>
<asp:ListItem Value="5.75" Text="North Carolina"></asp:ListItem>
<asp:ListItem Value="5" Text="North Dakota"></asp:ListItem>
<asp:ListItem Value="5.5" Text="Ohio"></asp:ListItem>
<asp:ListItem Value="4.5" Text="Oklahoma"></asp:ListItem>
<asp:ListItem Value="0" Text="Oregon"></asp:ListItem>
<asp:ListItem Value="6" Text="Pennsylvania"></asp:ListItem>
<asp:ListItem Value="7" Text="Rhode Island"></asp:ListItem>
<asp:ListItem Value="6" Text="South Carolina"></asp:ListItem>
<asp:ListItem Value="4" Text="South Dakota"></asp:ListItem>
<asp:ListItem Value="7" Text="Tennessee"></asp:ListItem>
<asp:ListItem Value="6.25" Text="Texas"></asp:ListItem>
<asp:ListItem Value="4.7" Text="Utah"></asp:ListItem>
<asp:ListItem Value="6" Text="Vermont"></asp:ListItem>
<asp:ListItem Value="5.0" Text="Virginia"></asp:ListItem>
<asp:ListItem Value="6.5" Text="Washington"></asp:ListItem>
<asp:ListItem Value="6" Text="West Virginia"></asp:ListItem>
<asp:ListItem Value="5" Text="Wisconsin"></asp:ListItem>
<asp:ListItem Value="4" Text="Wyoming"></asp:ListItem>
</asp:DropDownList>
ich auch Ansichtszustand versucht zu deaktivieren, OnSelectedIndexChanged dann würde ich den ausgewählten Index in Viewstate speichern [ „selectedIndex“] und auf Postbacks abrufen und die Dropdown-Liste neu zu besiedeln. Aber wie bereits gesagt, weil das ausgewählte Element einen anderen Wert hat als der beabsichtigte, bevor es überhaupt zum Ereignis gelangt, wurde nur der verschraubte Wert in meinem benutzerdefinierten Ansichtszustandsfeld gespeichert.
Danke, das ist, was ich hatte Angst. Saugt, wenn es auf etwas hinausläuft, was einfach nicht möglich ist. Ich habe stundenlang versucht herauszufinden, wo der Viewstate geändert wurde, nur um herauszufinden, dass er nichts mit Viewstate zu tun hat. lol – Chev
Ich gehe tatsächlich die extra Meile und baue eine Steuerdatenbanktabelle. Ich hätte das in erster Linie tun sollen, um Änderungen bei Steuersatzänderungen leicht zu ändern. Dies passiert beim Schneiden von Ecken: P – Chev