Arg.Наследование проектов НАСТОЛЬКО очень весело.Особенно, когда они не работают должным образом, и особенно, когда они содержат UpdatePanels ...
У меня есть элемент управления с адресом доставки внутри UpdatePanel.Мы должны иметь возможность обрабатывать международные адреса, поэтому я сделал одну вещь - показать / скрыть раскрывающийся список Штат в зависимости от того, является ли выбранная страна США или нет.Кроме того, у меня есть RequiredFieldValidator в этом раскрывающемся списке.
Когда пользовательский элемент управления используется на обычной странице в другом месте приложения, все отлично.Тем не менее, в UpdatePanel .NET не видит RFV, хотя JavaScript это делает.
Address.ascx: (snipped)
<li class="form-list-question question-state">
<span class="form-label">
<asp:Label ID="lblState" runat="server" SkinID="FieldLabel" AssociatedControlID="ddlState" Text="State" /></span>
<asp:DropDownList ID="ddlState" runat="server" SkinID="State" DataSourceID="dsStates" AppendDataBoundItems="true" ViewStateMode="Enabled"
DataTextField="Name" DataValueField="Abbr" CssClass="required">
<asp:ListItem Text="" Value=""></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvState" runat="server" EnableClientScript="true" Display="None" ControlToValidate="ddlState"
ErrorMessage="State is required." ValidationGroup="Address" />
</li>
адрес.js: (разрезано)
function SetFormByCountry() {
if (isUsTerritory()) {
$('.question-state').show();
if ($('#rfvState').length > 0) {
$('#rfvState').enabled = true;
}
} else {
$('.question-state').hide();
if ($('#rfvState').length > 0) {
$('#rfvState').enabled = false;
}
}
}
Текущее поведение: если выбрана страна, отличная от США, раскрывающийся список «Состояние» соответствующим образом исчезает, но при отправке формы проверка по-прежнему происходит натеперь скрытый выпадающий список.Ошибки JS не созданы.
Ожидаемое поведение: С учетом вышеописанного сценария RequiredFieldValidator следует отключить, а форму следует опубликовать.