2013-02-04 31 views
7

如果我使用一个DropDownList:如何将最初的“选择”值添加到一个DropDownList

<asp:DropDownList ID="DropDownListSubContractors" runat="server" 
    DataTextField="Company_Name" DataValueField="id"> 
</asp:DropDownList> 

我用什么属性/设置,可以让我用“---选择---”作为下拉菜单中的初始选项,而不是列表中的第一个值。

+0

我注意到有关确保“--Select--”ListItem未被选中的意见。以下是如何要求不同的选择:http://stackoverflow.com/a/38727154/3347858 –

回答

14

您可以使用

<asp:DropDownList ID="DropDownListSubContractors" runat="server" AppendDataBoundItems="true" DataTextField="Company_Name" DataValueField="id"> 
    <asp:ListItem Text="---Select---" Value="0" /> 
</asp:DropDownList> 

或者你可以在动态代码后面添加此类似这样的

DropDownListSubContractors.Items.Add(new ListItem("---Select---", "0")); 
+0

对于延迟回复,感谢您的回答。如果用户没有从下拉菜单中选择任何东西,但仍然按下提交,该程序仍然运行,我如何解决这个问题,以便用户需要在点击按钮之前从下拉列表中选择一个值,或者他们仍然可以点击按钮但代码将不会运行,并会显示错误,请选择... – John

+0

您可以使用必需的或CustomValidator防止用户从下拉列表中选择值。你也可以通过javascript来验证它,如if(document.getElementById(“DropDownListSubContractors”)。value == 0){alert('请选择值');}。 – nrsharma

7
<asp:DropDownList ID="DropDownListSubContractors" runat="server" AppendDataBoundItems="true" DataTextField="Company_Name" DataValueField="id"> 
    <asp:ListItem Text="---Select---" Value="" /> 
</asp:DropDownList> 

现在,您可以在代码绑定您的下拉后面像往常一样到数据源和该数据源并不需要包含一个默认值项:

IEnumerable<MyViewModel> model = ... 
DropDownListSubContractors.DataSource = model; 
DropDownListSubContractors.DataBind(); 
+0

对于延迟回复感到抱歉,但感谢您的答案。如果用户没有从下拉列表中选择任何东西,但仍然按下提交,该程序仍然运行,我如何修复它,以便用户在点击按钮之前需要从下拉列表中选择一个值?或者他们仍然可以点击按钮,但代码不会运行,并且会显示错误,请选择... – John

+0

您可以使用将必需验证器分配给下拉列表:http://stackoverflow.com/questions/2280559/how- to-add-a-requiredfieldvalidator-to-dropdownlist-control –

2

你可以做到这一点是这样的:

从后面的代码:

DropDownListSubContractors.Items.Insert(0, new ListItem("---Select---", string.Empty)); 

注:我们使用索引0,使其在列表中的第一个元素。

+0

对于延迟回复,感谢您的回答。如果用户没有从下拉列表中选择任何东西,但仍然按下提交,该程序仍然运行,我如何修复它,以便用户在点击按钮之前需要从下拉列表中选择一个值?或者他们仍然可以点击按钮,但代码不会运行,并且会显示错误,请选择... – John

+0

John,考虑添加一个RequiredFieldValidator,这样用户将无法点击提交按钮而无需从选择中进行选择 –

相关问题