Asp.net 填充下拉列表

Asp.net 填充下拉列表,asp.net,drop-down-menu,Asp.net,Drop Down Menu,嗨,我需要填充一个下拉列表。我设计了一个数据源并将其分配给dropdownlist。下拉列表填充正确。但问题是我需要在dropdownlist的开头添加一个默认值,比如“default”(默认值不在数据库中) 我这样做: <asp:DropDownList ID="classInstructor" runat="server" DataSourceID="SqlDataSource3" DataTextField="InstrName" DataValu

嗨,我需要填充一个下拉列表。我设计了一个数据源并将其分配给dropdownlist。下拉列表填充正确。但问题是我需要在dropdownlist的开头添加一个默认值,比如“default”(默认值不在数据库中)

我这样做:

 <asp:DropDownList ID="classInstructor" runat="server" DataSourceID="SqlDataSource3" 
                DataTextField="InstrName" DataValueField="InstrName">

        <asp:ListItem Value="Default" Text="Default" Selected="True"></asp:ListItem>


        </asp:DropDownList>


但是默认值不会显示在下拉列表中。可能我的做法是错误的。您能告诉我处理此问题的最佳方法吗。

将下拉列表中的
AppendDataBoundItems
属性设置为
true
,数据源中的项将显示在您添加到标记中的任何列表项之后,例如

<asp:DropDownList ID="classInstructor" runat="server" DataSourceID="SqlDataSource3" 
    DataTextField="InstrName" DataValueField="InstrName" AppendDataBoundItems="true">
    <asp:ListItem Value="Default" Text="Default" Selected="True"/>
</asp:DropDownList>

在下拉列表中将
AppendDataBoundItems
属性设置为
true
,数据源中的项目将显示在您添加到标记中的任何列表项目之后,例如

<asp:DropDownList ID="classInstructor" runat="server" DataSourceID="SqlDataSource3" 
    DataTextField="InstrName" DataValueField="InstrName" AppendDataBoundItems="true">
    <asp:ListItem Value="Default" Text="Default" Selected="True"/>
</asp:DropDownList>

如果DropDownList在运行时绑定到数据源,则无法使用此方法。设计时标记中的默认项将在绑定中被清除

您需要做的是在调用
DataBind()
方法之后插入


请参见此处,以获取有关此的示例和更多注释:

如果DropDownList在运行时绑定到数据源,则无法使用此方法。设计时标记中的此默认项将在绑定中被清除

您需要做的是在调用
DataBind()
方法之后插入


请参见此处查看示例和更多评论:

哇,我不知道这一个,如果它有效,我在回答中链接的问题是毫无意义的!?@Davide我只是看着你的答案,想‘我们不可能都对’:-)请记住,当数据源ID在标记中以声明方式设置时,没有显式调用
DataBind
,这一切都是自动发生的。@Davide看一下你链接到的问题中的第二个答案,它也讨论了这个属性。是的,这是真的,但仍然可以在页面\u PreRender中调用Insert。如果一切都是从标记端完成的,并且您的解决方案有效,那么一切都很好。我的解决方案和我链接的内容对于基于代码的绑定/方法是有效的。哇,我不知道这个,如果它有效的话,我在回答中链接的问题是毫无意义的@Davide我刚才在看你的答案并想“我们不可能都对”:-)请记住,当数据源ID在标记中以声明方式设置时,没有显式调用
DataBind
,这一切都是自动发生的。@Davide看一下你链接的问题中的第二个答案,它还讨论了这个属性。是的,这是真的,但是仍然可以在页面预呈现中调用Insert。如果一切都是从标记端完成的,并且您的解决方案有效,那么一切都很好。我的解决方案和我链接的内容对于基于代码的绑定/方法是有效的。