选项设置为false的ASP下拉列表
本文关键字:ASP 下拉列表 false 设置 选项 | 更新日期: 2023-09-27 18:25:53
我有一个表单的下拉列表:
<asp:DropDownList runat="server" CssClass="holdTypeDDL" ID="holdTypeDDL"></asp:DropDownList>
并且在aspx页面的c#codebehind中加载时填充!Page.is Postback via:
holdTypeDDL.Items.Add(new ListItem(string.Empty, false.ToString()));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.Now.Description(), false.ToString()));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAHoldType.Description(), true.ToString()));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAAHoldType.Description(), true.ToString()));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAAAHoldType.Description(), false.ToString()));
我注意到,如果选择了字符串值为False的select选项之一,它就不会认为它是选中的。即,回发后所选索引为0。如果选择了具有true的项,并且在回发时获取值,则工作正常。
我找不到任何关于为什么会这样的文档。为什么在选项元素的值中有一个"False"字符串会导致它不能正确返回?
编辑:
HTML中的呈现方式如下:
<select class="holdTypeDDL" id="BodyContent_holdTypeDDL" name="ctl00$BodyContent$holdTypeDDL">
<option value="False"></option>
<option value="False">Now</option>
<option value="True">AA Hold Type</option>
<option value="True">AAA Hold Type</option>
<option value="False">AAAA Hold Type</option>
</select>
我认为值应该是唯一的。因为您有多个True
和False
值,所以当它将其标记为选定时,它会将第一个具有该值的值作为选定值。为什么要使用这些值?你可以使用与文本相同的值,或者像这样更改值:
holdTypeDDL.Items.Add(new ListItem(string.Empty, false.ToString() + "0"));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.Now.Description(), false.ToString() + "1"));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAHoldType.Description(), true.ToString() + "2"));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAAHoldType.Description(), true.ToString() + "3"));
holdTypeDDL.Items.Add(new ListItem(HoldTypeType.AAAAHoldType.Description(), false.ToString() + "4"));
这应该行得通。