2

asp.net Web ページに DropDownList があります。RequiredFieldValidator が機能していません。私のコードを見てくれてありがとう。

<asp:DropDownList ID="Organization" runat="server"
    DataSourceID="OrganizationList"
    DataTextField="OrgName" DataValueField="OrgCode" CausesValidation="True">
</asp:DropDownList>

<asp:SqlDataSource ID="OrganizationList" runat="server"
    ConnectionString="<%$ ConnectionStrings:MembershipDB %>"
    SelectCommand="Admin_GetOrganizationDropDown" 
    SelectCommandType="StoredProcedure"></asp:SqlDataSource>

<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidatorOrg"
    ControlToValidate="Organization"
    ErrorMessage="Organization is required." 
    Display="Dynamic" />
4

2 に答える 2

6

まだ選択していない場合は、何も選択していないことを意味する値が必要です。このような:

 Organization.Insert(0,new ListItem("--Select--","0"));

そして、asp:RequiredFieldValidator許可していない値をチェックするように に指示する必要があります。したがって、InitialValue 値は 0 にする必要があります。次のようにします。

<asp:RequiredFieldValidator InitialValue="0"

次に、--Select--オプションが選択され、ページを送信しようとすると。asp:RequiredFieldValidatorが発砲します。

編集

私はあなたが示しているSQLのビットの外観が好きではありません:

Select Distinct 
    'name' As [OrgCode],'Please Select' As [OrgName] 
FROM [MedOrganization] 
Union All 
SELECT [OrgCode], [OrgName] FROM [MedOrganization]

SQLコードのパフォーマンスバイスの良い部分ではありません。代わりにこれを行うことができます:

Select
    'name' As [OrgCode],'Please Select' As [OrgName] 
Union All 
SELECT [OrgCode], [OrgName] FROM [MedOrganization]

なぜdistinctそこを使うのですか?上記のように選択できる場合。質問に戻ります。次のようにInitialValueセットを試すことができます。name

<asp:RequiredFieldValidator InitialValue="name"
于 2012-05-15T14:37:10.963 に答える
0

以下は、選択/選択してくださいをクリーンな組織のみのコレクションに強制することなく機能します。

<asp:DropDownList ID="ddlOrganization" runat="server" CssClass="sel_box" />
<asp:RequiredFieldValidator ID="rfvOrganization" ControlToValidate="ddlOrganization" InitialValue="" ValidationGroup="vgOrganization" runat="server" Display="None" meta:resourceKey="rfvOrganization" />

違いInitialValue=""ます。

HTH。

于 2018-05-25T22:10:20.470 に答える