2012-08-15 52 views
0

下午所有,RequiredFieldValidator .net 2010

我有兩個fileds,我需要在Web窗體上驗證一旦用戶單擊提交按鈕。這些Web表單還包含驗證摘要,以使用戶知道錯誤消息。

我的代碼看起來像這樣...

 <td>      
     <asp:TextBox ID="txtOrganiser" runat="server" ></asp:TextBox>  
    </td> 
    <td> 
     <asp:RequiredFieldValidator ID="RequiredFieldVal0" 
        ControlToValidate="txtOrganiser" 
        ErrorMessage="Meeting Organiser" 
        Text="*" 
        runat="server" Display="None"/> 
     </td> 
     <td>  
     <asp:DropDownList ID="AgendaStatus" 
       runat="server" Height="24px" Width="125px"> </asp:DropDownList>   
     </td>  
     <td> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
        ControlToValidate="AgendaStatus" 
        ErrorMessage="Agenda Status" 
        Text="*" 
        runat="server" Display="None"/> 
     </td> 
     <td> 
      <asp:ValidationSummary ID="ValidationSummary" 
      HeaderText="You must enter a value in the following fields:" 
      DisplayMode="BulletList" 
      EnableClientScript="true" 
      runat="server"/> 
     </td> 

爲「會議組織者」的代碼工作完全正常。然而'AgendaStatus'下拉式不適用。我認爲這是由於下拉列表本質上已經有一個默認值來提示用戶選擇該項目?

議程下拉使用此代碼...

'Used for the Enum property on the web page for the dropdown (Agenda Template.aspx) 
Private Sub BindStatus() 
    AgendaStatus.DataSource = EnumHelper.ToList(GetType(AgendaStatus)) 

    AgendaStatus.DataTextField = "Value" 
    AgendaStatus.DataValueField = "Key" 
    AgendaStatus.DataBind() 

    AgendaStatus.Items.Insert(0, New ListItem(" - Please Select -", "~")) 
End Sub 

而這一段代碼...

Imports Microsoft.VisualBasic 
Imports SembCorp.CoreLib 

Public Enum AgendaStatus 
    <EnumDescription("Created")> _ 
    TempCreated = 1 
    <EnumDescription("In Progress")> _ 
    InProgress = 2 
    <EnumDescription("Completed")> _ 
    Completed = 3 

End Enum 

如果下拉框中不必須選擇的項目是顯示一個錯誤消息。 ..

Requested value '~' was not found. 

我可以看到爲什麼這個錯誤顯示爲用戶沒有選擇下拉選項之一ñ。不過,我認爲我可以添加RequiredFieldValidator工具來解決此問題。這沒有奏效,我沒有解決方案。

任何幫助提前預約。

問候 貝蒂

回答

1

首先,你可以設置AppendDataboundItems爲true,就這個樣子,你可以在ASPX標記聲明添加默認項:

<asp:DropDownList ID="AgendaStatus" 
    AppendDataboundItems="true" 
    runat="server" Height="24px" Width="125px"> 
    <asp:ListItem Value="-1" Text=" - Please Select -"></asp:ListItem> 
</asp:DropDownList> 

然後你可以設置驗證器的InitialValue"-1"以確保第一項不是有效的用戶選項:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
       InitialValue="-1" 
       ControlToValidate="AgendaStatus" 
       ErrorMessage="Agenda Status" 
       Text="*" 
       runat="server" Display="None"/> 
+0

很多非常感謝您的解決方案。這是一種享受。 – 2012-08-15 15:25:53

0

從列表項目值中刪除「〜」。還爲DropDownList設置了AppendDataBoundItems="true"

+0

很多感謝您的幫助,這是一個很好的幫助。 – 2012-08-15 15:26:59