Aspx下拉列表未显示最高价值

时间:2013-12-10 12:25:28

标签: c# asp.net drop-down-menu

我有一个aspx页面(C#代码页)。我有一些硬编码的下拉列表,由于某种原因,他们没有显示顶部列表项(值)。我添加了一个额外的顶部列表项(值),现在显示已经存在的值的正确值,但是没有显示额外的值。

我在C#代码中使用下拉列表执行的唯一功能是隐藏或显示它们。然后根据所选值进行验证。

我的aspx代码:

<asp:DropDownList ID="ddlAction" runat="server" Visible="True" 
    AppendDataBoundItems="true" Height="25px" Width="149px">
    <asp:ListItem Value="Select">Please Select</asp:ListItem>
    <asp:ListItem>Yes</asp:ListItem>
    <asp:ListItem>No</asp:ListItem>
</asp:DropDownList>

C#代码:

ddlAction.Visible = false;
ddlAction.Visible = true;

我经常使用dropdownlist,之前从未遇到过这个问题。有没有人有任何想法可能是什么问题?

更新到这个问题:

我根据Rahul在C#代码中添加了我的项目。做了快速测试并且有效。 今天早上,我再次为第一项(“请选择”)获得空白。

Aspx代码:

<asp:DropDownList ID="ddlAction" runat="server" 
 AppendDataBoundItems="True" Height="27px" Width="159px">
 </asp:DropDownList>

C#代码:

ddlAction.Visible = true;
ddlAction.AppendDataBoundItems = true;
ddlAction.Items.Insert(0, new ListItem("Please Select","Select"));
ddlAction.Items.Insert(1, new ListItem("Yes", "Yes"));
ddlAction.Items.Insert(2, new ListItem("No", "No"));
ddlAction.DataBind();

渲染源代码:

  &nbsp;<select name="ctl00$ContentPlaceHolder1$ddlAction" id="ContentPlaceHolder1_ddlAction" style="height:27px;width:159px;">
<option selected="selected" value="Select"></option>
<option value="Yes">Yes</option>
<option value="No">No</option>

4 个答案:

答案 0 :(得分:1)

在你的aspx coe中使用AppendDataBound = true

<asp:DropDownList ID="ddlAction" AppendDataBound = true runat="server" Visible="True" Height="25px" 
                            Width="149px">
                            <asp:ListItem Value="Select">Please Select</asp:ListItem>
                            <asp:ListItem>Yes</asp:ListItem>
                            <asp:ListItem>No</asp:ListItem>
                        </asp:DropDownList>

编辑1

有关List Item

的更多详情
 <asp:ListItem Value="-2" Text="Please Select"></asp:ListItem>
 <asp:ListItem Value="0" Text="Yes"></asp:ListItem>
 <asp:ListItem Value="-1" Text="No"></asp:ListItem>

答案 1 :(得分:1)

尝试将DropSownList的AppendDataBoundItems = true属性用于.aspx页面。

你也可以从后面的代码中分配值,如

ddlAction.Items.Insert(0, new ListItem(String.Empty, String.Empty));

答案 2 :(得分:1)

我建议您使用其内部属性声明您的DropDownList ListItems,并定义ListItem必须是所选的{/ p>}:

    <asp:DropDownList ID="ddlAction" runat="server" Visible="True" AppendDataBoundItems="true" Height="25px" Width="149px">
        <asp:ListItem Text="Please Select" Value="Select" Selected="True"></asp:ListItem>
        <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
        <asp:ListItem Text="No" Value="No"</asp:ListItem>
     </asp:DropDownList>

这是ASP.NET用于工作的方式,并会在回发时在服务器端返回正确的选定值。

答案 3 :(得分:1)

我认为您不必使用DataBind()方法也不必设置AppendDataBoundItems,因为您已插入ListItems并且未加载选项数据库!

我认为你需要通过为ListItemIndex属性设置值来告诉所选DropDownList.SelectedIndex是什么。

修改

另外,请尝试阅读有关AppendDataBoundItems属性和enter link description here方法的MSDN文档。