Вот моя проблема:Как предотвратить обновление UpdatePanel вне панели?
- я выбираю тип с помощью ddlType
- я нажимаю на btnAddChoice, чтобы добавить несколько вариантов
- я нажимаю на btnSubmit, чтобы сохранить форму
Но когда Я пытаюсь получить ddlType.SelectedValue в btnSubmit_Click(), он всегда возвращается к «Выбрать тип».
Если я не делаю шаг №2, то он отлично работает. Из того, что я понимаю, проблема связана с вызовом ajax (postback) и может быть решена путем сохранения SelectedValue в сеансе или ViewState.
Но на этой странице есть много других элементов управления (например, ddlType), поэтому это не похоже на элегантное решение. Я надеялся, что структура сохранит выбранные значения в ViewState автоматически ... Любая идея? В конце концов, не является ли целью UpdatePanel обновлять только панель?
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:DropDownList ID="ddlType" runat="server">
<asp:ListItem Text="Select a type" Value=""></asp:ListItem>
<asp:ListItem Text="One" Value="1"></asp:ListItem>
<asp:ListItem Text="Two" Value="2"></asp:ListItem>
<asp:ListItem Text="Three" Value="3"></asp:ListItem>
</asp:DropDownList>
<div>
<strong>Choices</strong>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAddChoice" EventName="Click" />
</Triggers>
<ContentTemplate>
<ul class="list-unstyled">
<asp:PlaceHolder runat="server" ID="phChoices"></asp:PlaceHolder>
</ul>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnAddChoice" runat="server" Text="Add Choice" CausesValidation="false"
OnClick="btnAddChoice_Click" />
</div>
<asp:Button ID="btnSubmit" runat="server" Text="Add question"
OnClick="btnSubmit_Click" />
UPDATE
Часть проблемы была вызвана:
$('#<%= MainPanel.FindControl("btnAddChoice").ClientID %>').click(function() {
var ddlType = $('#<%= MainPanel.FindControl("ddlType").ClientID %>');
ddlType.attr('disabled', 'disabled');
});
Пожалуйста, ознакомьтесь question для деталей. Что касается других элементов управления также пустые, причина в том, что "dynamically created controls have to be created each and every post-back"
где Ур 'ScriptManage r'? – BNN
ok Я добавил его к фрагменту (стараюсь держать его коротким) –
Так что, в основном, вы не хотите обновлять всю страницу? это правильно ? – BNN