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