我有一个表单的下拉列表:
<asp:DropDownList runat="server" CssClass="holdTypeDDL" ID="holdTypeDDL"></asp:DropDownList>
并在 !Page.isPostback 时在 aspx 页面的 c# 代码隐藏中填充 onload:
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>