我有一个包含来自数据库的数据的列表框。但即使没有选择值,验证也会通过。 我试过,只是简单的必填字段验证器,也不起作用。 这是代码。
<asp:Panel ID="panelDelivery" runat="server" Visible="false"
style="position: relative; top: -130px; background-color: #66FF33; left: 0px;" >
<asp:Label ID="lblOverWeight" runat="server" Width="344px"></asp:Label><br />
<asp:ListBox ID="listBxDelivery" runat="server" DataSourceID="Delivery"
DataTextField="DataText" DataValueField="Price" Width="489px"
AppendDataBoundItems="True" CausesValidation="True" AutoPostBack="True"
style="top: 0px; left: 0px">
</asp:ListBox>
<asp:RequiredFieldValidator ID="rfvDelivery" runat="server"
ErrorMessage="* Select Delivery " ControlToValidate="listBxDelivery"></asp:RequiredFieldValidator>
答案 0 :(得分:0)
默认情况下,requiredFieldValidator将比较其initialValue(默认为“”)和ControlToValidate选定的值。确保没有设置listbox selectedvalue,如果更改它也会更改requiredFieldValidator的初始值。 见下面的例子
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem Text="1" Value="1" ></asp:ListItem>
<asp:ListItem Text="2" Value="2" ></asp:ListItem>
<asp:ListItem Text="2" Value="2" ></asp:ListItem>
</asp:ListBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Error, Select value" ControlToValidate="ListBox1"></asp:RequiredFieldValidator>
或
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem Text="1" Value="1" Selected="True"></asp:ListItem>
<asp:ListItem Text="2" Value="2" ></asp:ListItem>
<asp:ListItem Text="2" Value="2" ></asp:ListItem>
</asp:ListBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="ListBox1" InitialValue="1"></asp:RequiredFieldValidator>