После нескольких часов отладки этой проблемы (см. Заголовок) я прибегаю к интернетам.Чтобы заявить заранее, да, я читал «Вопросы с похожими названиями», создавая этот вопрос.Хотя они и дали некоторое хорошее представление, решение не было достигнуто.
Вот базовая карта событий:
- Загрузка страницы, первый индекс RadioListBox [0] установлен на выбранный= "true".
- Пользователь выбирает другой индекс, если выбрано определенное значение элемента, установите для видимости значение "true" последующей панели
Я довольно новичок в ASP.NET AJAX мир, поэтому любые советы приветствуются.Если вы не скажете мне есть какашку, я могу не оценить это.
Вот код, за которым следуют шаги, которые я предпринял для его отладки.
Разметка: (да, я знаю, что наборы полей не внутритеги формы не являются семантическими, об этом я буду беспокоиться позже)
<asp:UpdatePanel runat="server" ID="updpnlDDCancelPartnerOpts" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel runat="server" CssClass="frmDDCancelPartnerOpts">
<fieldset>
<legend>Digital Cancellation Options:</legend>
<br />
<asp:RadioButtonList ID="rdlstCancellOptions" runat="server" AutoPostBack="true"
cssclass="rdBtnLstDDCancelOpts" onselectedindexchanged="rdlstCancellOptions_SelectedIndexChanged">
<asp:ListItem Value="cancelall" Selected="True">Cancel ALL Digital Distribution:</asp:ListItem>
<asp:ListItem Value="canceldotcom">Cancel CD Baby ONLY:</asp:ListItem>
<asp:ListItem Value="partnercancellations">Cancel From Specific Partners:</asp:ListItem>
</asp:RadioButtonList>
</fieldset>
</asp:Panel>
<asp:Panel runat="server" ID="pnlChecks" CssClass="partner">
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdlstCancellOptions" EventName="SelectedIndexChanged"/>
</Triggers>
</asp:UpdatePanel>
CodeBehind: (Я просто публикую метод Event, если вы хотите увидеть больше, просто спросите:)
protected void rdlstCancellOptions_SelectedIndexChanged(object sender, EventArgs e)
{
if (rdlstCancellOptions.SelectedValue == "partnercancellations")
{
pnlChecks.Visible = true;
updpnlDDCancelPartnerOpts.Update();
}
}
Debuggin ':
Я обернул каждый (элемент управления RLB и панель pnlChecks) в отдельные UpdatePanels, я использовал триггеры и не использовал их, почти со всеми комбинациями AutoPostBack.
Больше всего, хотя, когда для функции события установлена точка останова, она достигает ее, выполняет итерацию по ней и затем возвращает вас на страницу - без обновления и установки панели pnlChecks в видимое состояние.
ScriptManager включен в MasterPage.
Я знаю, что, вероятно, опускаю полчища информации.Однако уже поздно, и после 17 часов рабочего дня (не все 17 часов были потрачены на это) я больше не могу заставить свои глаза смотреть на экран компьютера.
Поэтому, пожалуйста, если естьвсе (что, скорее всего, очевидно), что мне не хватает, не стесняйтесь поделиться.+ миллион интернет всем!
Koohoy0x