0

午後の皆さん、

ユーザーが送信ボタンをクリックすると、Web フォームで検証する必要がある 2 つのフィールドがあります。これらの 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>

「Meeting Organiser」のコードは問題なく動作します。ただし、「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 ツールを追加できると思いました。これは機能せず、解決策がありません。

どんな助けでも、事前に大いに感謝します。

よろしくベティ

4

2 に答える 2

1

最初に、AppendDataboundItemstrue に設定できます。この方法で、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"/>
于 2012-08-15T15:08:59.433 に答える
0

リスト項目の値から「~」を削除します。またAppendDataBoundItems="true"DropDownList

于 2012-08-15T15:09:20.087 に答える