web-dev-qa-db-ja.com

RequiredFieldValidatorをDropDownListコントロールに追加する方法は?

データベースの値を表示するために、DropDownListをa SqlDataSourceにバインドしています。

RequiredFieldValidatorを使用して検証できません。

62
user242375

ほとんどの場合、他の種類のコントロールを検証しているように扱いますが、必須フィールドバリデータの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");
96
Fishcake

ドロップダウンリストが次のようになっているとします:

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

次の2つの方法があります。

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

2番目の方法は、比較バリデーターを使用することです。

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

データソースを使用している場合、コードビハインドなしでデータソースを使用する別の方法があります。

次の重要な点に注意してください。

  • Value="0"ListItemはソースページにあり、コードには追加されていません
  • ListItemAppendDataBoundItems="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>
11
Tony L.

InitialValue = "0":ddlで0番目のインデックスアイテムが選択されると、初期検証が起動します。

<asp:RequiredFieldValidator InitialValue="0" Display="Dynamic" CssClass="error" runat="server" ID="your_id" ValidationGroup="validationgroup" ControlToValidate="your_dropdownlist_id" />
1
Bhavin