我有一個包含幾個項目的DropDownList。我想使用RequiredFieldValidator來驗證這個控件。我的ASP.NET代碼如下所示:DropDownlist的RequiredFieldValidator即使在DropDownList中的某個項目被選中時也會觸發
<asp:DropDownList runat="server" ID ="ddlType"></asp:DropDownList>
<asp:DropDownList runat="server" ID ="ddlItems"></asp:DropDownList>
<asp:RequiredFieldValidator ID="valType" runat="server" ControlToValidate="ddlItems" Display="Dynamic" ErrorMessage="* Please select an option"></asp:RequiredFieldValidator>
<asp:Button ID="btnSubmit" runat="server" text="Save" />
而在代碼隱藏我的Page_Load中的功能是這樣的:
With ddlType
.Items.Add(New ListItem("-- Select --", "-- Select --"))
.Items.Add(New ListItem("Grocery", "10"))
.Items.Add(New ListItem("Stationery", "30"))
End With
我有一個加載基於第一所作的選擇第二下拉列表其他功能下拉列表:
Protected Sub ddlType_Load(sender As Object, e As System.EventArgs) Handles ddlType.Load
If ddlType.SelectedValue = "10" Then
With ddlItems
.Items.Clear()
.Items.Add(New ListItem("-- Select --", "-- Select --"))
.Items.Add(New ListItem("Milk", "11"))
.Items.Add(New ListItem("Eggs", "12"))
.Items.Add(New ListItem("Cheese", "13"))
.Items.Add(New ListItem("Bread", "14"))
End With
Else
With ddlItems
.Items.Clear()
.Items.Add(New ListItem("-- Select --", "-- Select --"))
.Items.Add(New ListItem("Pen", "31"))
.Items.Add(New ListItem("Pencil", "32"))
.Items.Add(New ListItem("Blank Paper", "33"))
.Items.Add(New ListItem("Ruled Paper", "34"))
.Items.Add(New ListItem("Eraser", "35"))
.Items.Add(New ListItem("Ruler", "36"))
.Items.Add(New ListItem("Protractor", "37"))
.Items.Add(New ListItem("Permanent Markers", "38"))
End With
End If
End Sub
以下是我的代碼提交按鈕:
Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
If Page.IsValid Then
' Perform SQL Data inserts here.
End If
End Sub
無論何時我嘗試提交數據,RequiredFieldValidator
都會顯示'* Please select an option'
錯誤消息,即使我在「ddlItems」下拉列表中選擇了除'-- Select --'
以外的其他選項。我試圖提交沒有選擇任何選項,以及選擇每個選項後。不知怎的,提交按鈕的If Page.IsValid
條件永遠不會有True
值,並且永遠不會到達SQL插入。
有人能幫我解決我可能在這裏失蹤的事嗎?非常感謝您的閱讀。