2012-01-21 49 views
4

我有一個下拉列表,我正在代碼中動態開發。RequiredFieldValidator爲下拉列表

Dim objPreferenceDropdownList As DropDownList = New DropDownList() 
         objPreferenceDropdownList.ID = "objPreferenceDropdownList" 
         objPreferenceDropdownList.AppendDataBoundItems = "True" 

       objPreferenceDropdownList.AutoPostBack = True 

我填充這個下拉菜單有不同的項目,如

objPreferenceDropdownList.Items.Add(new ListItem("--Select Color--","0")); 

objPreferenceDropdownList.Items.Add(new ListItem("Red","1")); 

objPreferenceDropdownList.Items.Add(new ListItem("Blue","2")); 

objPreferenceDropdownList.Items.Add(new ListItem("White", "3")); 

objPreferenceDropdownList.Items.Add(new ListItem("Pink", "4")); 

現在我需要驗證下拉列表它沒有在下拉列表中選擇的任何項目我創建了一個必填字段校驗動態是這樣的:當下拉列表是空的

Dim reqPrefGroupValidator As RequiredFieldValidator = New RequiredFieldValidator() 
           reqPrefGroupValidator.ControlToValidate = "objPreferenceDropdownList" 
           reqPrefGroupValidator.InitialValue = "0" 
           reqPrefGroupValidator.SetFocusOnError = True 
           prefdiv.Controls.Add(reqPrefGroupValidator) 

需要的問題現場驗證只能如果我需要當S火災的RequiredFieldValidator dropdownlist的當選項目值爲零。

+0

把一個狀態來檢查wheather被選擇的項目,並且如果不強制Validae()方法來驗證 – Devjosh

+0

爲驗證者提供Id –

回答

12

設置驗證程序的與InitialValue爲0和驗證器必須具有和ID ofcourse爲:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ErrorMessage="RequiredFieldValidator" ControlToValidate="objPreferenceDropdownList" 
     InitialValue="0"></asp:RequiredFieldValidator> 
1

你可以使用比較字段驗證和CompareValue爲0和CompareType int。

你可以這樣做。

<asp:DropDownList runat="server" ID="objPreferenceDropdownList"></asp:DropDownList> 
    <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="plz Select Value" ValueToCompare="0" Operator="GreaterThan" ControlToValidate="objPreferenceDropdownList" Type="Integer"></asp:CompareValidator> 
    <asp:Button ID="btnSubmit" runat="server" Text="Submit Form" OnClick="btnSubmit_Click" /> 
+0

使用RequiredFieldValidator控件的'InitialValue'屬性來選擇@nuux解決方案。 – Lankymart