DropDownList RequiredFieldValidator不起作用

时间:2012-05-15 14:30:21

标签: asp.net validation

我的asp.net网页上有一个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" />

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分: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。