好的,所以我有一个包含50个ListItem的DropDownList控件,每个50个状态一个.文本值反映了使每个文本值唯一的每个州名.但是,每个列表项的value属性包含该州的当前税率,这意味着某些值不是唯一的.此控件上的回发会不断更改所选项目.有没有解决这个问题?
要复制,请将以下代码复制到新的Web表单中.它只是一个简单的DropDownList.尝试选择不同的状态.其中一些坚持,而另一些则没有.例如,尝试选择"Idaho"作为州; 它出于某种原因归还阿肯色州.这是在OnSelectedIndexChanged事件甚至触发之前发生的,因为如果我选择"Idaho"然后在回发的事件方法中读取所选项目,则所选项目是阿肯色州!很烦人.
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>
Run Code Online (Sandbox Code Playgroud)
我甚至尝试禁用viewstate,然后OnSelectedIndexChanged我将所选索引存储在ViewState ["selectedIndex"]中并在回发时检索它并重新填充下拉列表.但正如我之前所说的那样,因为所选项目的值与它之前预定的事件的值不同,所以它只是在我自定义的viewstate字段中存储了screwy值.
我认为你的价值观应该是独特的.而不是将税率作为价值,而是让价值只是州,然后使用该州获得您的税收价值.举个例子,在您的代码隐藏中,您可以使用一个Dictionary<string, decimal> taxTable用于获取值的代码.如
decimal taxRate = taxTable[yourDropDown.SelectedValue];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |