2010-02-17 39 views

回答

85

對於絕大多數情況下,您將它視爲您正在驗證任何其他類型的控件,但使用所需字段驗證程序的InitialValue屬性。

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="your-dropdownlist" InitialValue="Please select" ErrorMessage="Please select something" /> 

基本上就是它說的是,如果在下拉列表中選擇比與InitialValue 1套其他任何值驗證會成功。

如果數據綁定,你需要事後插入「請選擇」值如下

this.ddl1.Items.Insert(0, "Please select"); 
+0

HI哥們, 的 這是我的代碼當我提交按鈕時,我仍然無法獲取消息 – user242375 2010-02-17 13:43:49

+0

數據綁定後,您的下拉列表中包含「Selectvalue」的值。我編輯了我的答案以顯示如何。 – Fishcake 2010-02-17 13:56:16

+10

@Fishcake,你需要有InitialValue =「0」。你的答案中的其他一切都很好。 – strider 2013-09-11 03:25:28

20

假設你的下拉列表是:

<asp:DropDownList runat="server" id="ddl"> 
<asp:ListItem Value="0" text="Select a Value"> 
.... 
</asp:DropDownList> 

有兩種方式:

<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0".... 

第二種方法是使用比較驗證程序:

<asp:CompareValidator ID="re1" runat="Server" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel".... 
+0

如果數據綁定,我認爲這是插入到列表中仍然是首選。你只需要改變DropDownList來支持它。 '' – ferics2 2013-02-28 20:02:49

8

如果您使用的是數據源,則可以使用另一種方法在沒有代碼的情況下執行此操作。

注意以下要點:

  • Value="0"ListItem是源頁上,在代碼中沒有添加
  • 源的ListItem會,如果你不包括 AppendDataBoundItems="true"在被覆蓋DropDownList
  • InitialValue="0"告訴確認者這是 應該觸發驗證器的值(如其他答案中指出的)

實施例:

<asp:DropDownList ID="ddlType" runat="server" DataSourceID="sdsType" 
        DataValueField="ID" DataTextField="Name" AppendDataBoundItems="true"> 
    <asp:ListItem Value="0" Text="--Please Select--" Selected="True"></asp:ListItem> 
</asp:DropDownList> 
<asp:RequiredFieldValidator ID="rfvType" runat="server" ControlToValidate="ddlType" 
          InitialValue="0" ErrorMessage="Type required"></asp:RequiredFieldValidator> 
<asp:SqlDataSource ID="sdsType" runat="server" 
        ConnectionString='<%$ ConnectionStrings:TESTConnectionString %>' 
        SelectCommand="SELECT ID, Name FROM Type"></asp:SqlDataSource> 
+1

最佳答案我在搜索中設置使用SQL數據源的下拉列表的初始值時遇到過。 – 2016-08-17 14:33:02

相關問題