2

我的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" />
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 回答