2013-02-04 48 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,這樣用戶將無法點擊提交按鈕而無需從選擇中進行選擇 –

相關問題