Как правильно использовать UpdatePanel? (Asp.net) - PullRequest
6 голосов
/ 06 октября 2009

Кажется, у меня нет проблем с ними.

У меня есть панель обновления с несколькими флажками. Я проверяю их и нажимаю кнопку «Сохранить», но это заставляет панель обновления выполнять обратную передачу (обновление) и устанавливает их обратно пустыми. Метод перерисовки выполняется перед кодом кнопки.

Как правильно использовать панель обновления с флажками, которыми вы можете манипулировать?

Редактировать: Я думаю, что проблема может быть принципиальной. Мне действительно нужен полный урок о том, как правильно использовать панели обновления.

Ответы [ 5 ]

10 голосов
/ 06 октября 2009

Пример кода:

 <asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel1">
    <ContentTemplate>
        <asp:CheckBox runat="server" ID="myCheckBox" Caption="CheckBox"/>
        <asp:Button runat="server" ID="saveButton" 
                   Caption="Save" OnClick="SaveButtonClick"/>
    </ContentTemplate>    
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="saveButton" EventName="Click" />        
    </Triggers>
 </asp:UpdatePanel>

Убедитесь, что:

  1. Режим обновления для UpdatePanel является условным
  2. Кнопка SaveButton, содержащаяся в разделе «Триггеры», как ControlID AsyncPostBackTrigger
3 голосов
/ 06 октября 2009

ваш код должен выглядеть как

if(!page.ispostback)
{
   re-drawing();
}

Как и при нажатии кнопки «Сохранить», вызывается метод re-drawing (), и он снова обновляет ваши флажки. Асинхронная обратная передача ведет себя и метод обращения к странице аналогичен полной обратной передаче, но обновляет значение в панелях обновления

Также проверьте этот URL http://ajax.net -tutorials.com / управление / UpdatePanel-контроль /

2 голосов
/ 06 октября 2009

Убедитесь, что кнопка «Сохранить» находится на панели обновлений для начала, а если нет, то она обозначена как триггер для панели обновлений в разделе <Triggers> на панели обновлений.

<asp:UpdatePanel ID="MyControlPanel" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="SaveButton" />
    </Triggers>
    <ContentTemplate> ...

Можете ли вы показать какой-нибудь код для вашей панели обновления?

0 голосов
/ 06 октября 2009

Добавьте объект ScriptManager на свою страницу, если у вас его нет. Установите EnablePartialRendering = "true". Разместите вашу UpdatePanel где-нибудь еще на странице и поместите контент, который вы хотите изменить, в тег внутри вашей UpdatePanel.

0 голосов
/ 06 октября 2009

Если вы используете серверные элементы управления для отображения флажков, вы должны добавить атрибут EnableViewState="true" к этим элементам управления и панели обновления.

Если у вас есть флажки, которые не являются серверными элементами управления, удалите их с панели обновления, включив в них только серверные элементы управления. Это приводит к тому, что несколько страниц обновлений на странице обычно не представляют большой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...