У меня есть три элемента управления RequiredFieldValidator
в форме (для раскрывающегося списка и текстовых полей), и они всегда делают страницу недействительной, даже если пользователь вводит данные!
<div class="control-group">
<asp:Label ID="HouseTypeLabel" runat="server" Text="Type of home" class="control-label asterisk" meta:resourcekey="HouseTypeLabelResource1"></asp:Label>
<div class="controls">
<asp:DropDownList ID="HouseType" runat="server" meta:resourcekey="HouseTypeResource1">
<asp:ListItem Value="" Text="please select" meta:resourcekey="ListItemResource1"></asp:ListItem>
<asp:ListItem Value="1" Text="rancher" meta:resourcekey="ListItemResource2"></asp:ListItem>
<asp:ListItem Value="2" Text="two-storey" meta:resourcekey="ListItemResource3"></asp:ListItem>
<asp:ListItem Value="3" Text="bi-level" meta:resourcekey="ListItemResource4"></asp:ListItem>
<asp:ListItem Value="4" Text="bungalow" meta:resourcekey="ListItemResource5"></asp:ListItem>
<asp:ListItem Value="5" Text="bungalow + basement" meta:resourcekey="ListItemResource6"></asp:ListItem>
</asp:DropDownList>
<p class="help-block">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="HouseType" runat="server" EnableClientScript="False" ErrorMessage="Please indicate type of home" meta:resourcekey="RequiredFieldValidator1Resource1"></asp:RequiredFieldValidator>
</p>
</div>
</div>
<div class="control-group">
<asp:Label ID="TotalBedroomsLabel" runat="server" Text="Total number of bedrooms" class="control-label asterisk" AssociatedControlID="TotalBedrooms" meta:resourcekey="TotalBedroomsLabelResource1"></asp:Label>
<div class="controls">
<asp:TextBox ID="TotalBedrooms" runat="server" class="input-xlarge" placeholder="" meta:resourcekey="TotalBedroomsResource1"></asp:TextBox>
<p class="help-block">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="TotalBedrooms" EnableClientScript="False" runat="server" ErrorMessage="Please enter total number of bedrooms" meta:resourcekey="RequiredFieldValidator2Resource1"></asp:RequiredFieldValidator>
</p>
</div>
</div>
<div class="control-group">
<asp:Label ID="TotalBathroomsLabel" runat="server" Text="Total number of bathrooms" class="control-label asterisk" AssociatedControlID="TotalBathrooms" meta:resourcekey="TotalBathroomsLabelResource1"></asp:Label>
<div class="controls">
<asp:TextBox ID="TotalBathrooms" runat="server" class="input-xlarge" placeholder="" meta:resourcekey="TotalBathroomsResource1"></asp:TextBox>
<p class="help-block">
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" EnableClientScript="false" runat="server" ControlToValidate="TotalBathrooms" ErrorMessage="Please enter total number of bathrooms" meta:resourcekey="RequiredFieldValidator3Resource2"></asp:RequiredFieldValidator>
</p>
</div>
</div>
Поэтому не имеет значения, ввожу ли я данные или ничего не ввожу, когда я нажимаю кнопку отправки, отображаются три сообщения об ошибках.
Любые идеи? Спасибо.
РЕДАКТИРОВАТЬ: кнопка отправки находится ниже
<div class="control-group">
<!-- Button -->
<div class="controls">
<asp:Button ID="SubmitButton" runat="server" Text="Save and Next" class="btn btn-info" meta:resourcekey="SubmitButtonResource1" OnClick="SubmitButton_Click" />
</div>
Page_Load()
, и перед заполнением я не использовалif(!Page.IsPostBack){ /* populate fields here*/ }
. Итак, до того, как мойSubmitButton_Click()
сработал, поля были перезаписаны старыми (и в моем случае пустыми) значениями. Вот почему элементы управленияRequiredFieldValidator
будут срабатывать. Спасибо всем за участие. - person nomad   schedule 22.04.2013