c# - DropDownList with the non-unique values is screwing up viewstate/postbacks -


okay, have dropdownlist control contains 50 listitems, 1 each of 50 states. text value reflects each state name makes each text value unique. however, value property of each list item contains state's current tax rate, means of values not unique. postbacks on control change selected item. there work around this?

to duplicate, copy code below new web form. simple dropdownlist. try selecting different states. of them stick, , others not. instance, try selecting "idaho" state; reverts arkansas reason. happening before onselectedindexchanged event fires because if select "idaho" , read selected item in event method on postback, selected item arkansas! annoying.

            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> 

i tried disabling viewstate, onselectedindexchanged store selected index in viewstate["selectedindex"] , retrieve on postback , repopulate drop down list. said before, because selected item different value 1 intended before gets event, storing screwy value in custom viewstate field.

i think values should unique. instead of putting tax rate value, instead let value state, , use state obtain tax value. 1 example, in code-behind, have dictionary<string, decimal> taxtable use values. such

decimal taxrate = taxtable[yourdropdown.selectedvalue]; 

Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -