Панель обновления обновляет всю страницу - PullRequest
2 голосов
/ 17 декабря 2011

На главной странице у меня есть скрипт-менеджер с enablepartialrendering true.На странице «У меня есть пользовательский контроль», на этом пользовательском контроле находится панель обновления с условным обновлением.

Это около двух списков, которые перемещают элемент из левого списка в правый список, нажимая кнопку изображения.(Это прекрасно работает)

Две кнопки изображения находятся в блоке div для таблицы стилей.Я использую postbacktrigger для них.Все еще целые страницы рефрешируют, что я делаю неправильно?

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DoubleListBox.ascx.cs" 
Inherits="site.Controls.DoubleListBox" %>
<div class="formfield ff_itemswapper">
<asp:Label ID="Label" runat="server" />
<div class="itemswapper">
    <asp:UpdatePanel ID="updatePanelListboxes" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:ListBox ID="lsbFrom" runat="server" CssClass="is_current"></asp:ListBox>
            <div class="is_transfers" runat="server">
                <asp:ImageButton ID="imb_Left" runat="server" CssClass="is_transfer_in" ImageUrl="../Images/gfx/arrow_left.png"
                    OnClick="imbLeft_Click" CausesValidation="False" />
                <asp:ImageButton ID="img_Right" runat="server" CssClass="is_transfer_out" ImageUrl="../Images/gfx/arrow_right.png"
                    OnClick="imgRight_Click" CausesValidation="False" />
            </div>
            <asp:ListBox ID="lsbTo" runat="server" CssClass="is_source"></asp:ListBox>
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger ControlID="imb_Left" />
            <asp:PostBackTrigger ControlID="img_Right" />
        </Triggers>
    </asp:UpdatePanel>
</div>

Список регистрируется на странице aspx как

<%@ Register Src="~/Controls/DoubleListBox.ascx" TagName="DoubleListBox" TagPrefix="lsb" %>

И вызывается:

<lsb:DoubleListBox ID="lsbPractise" runat="server" />

1 Ответ

5 голосов
/ 17 декабря 2011

Вы, похоже, неправильно поняли, что делает PostBackTrigger.

A PostBackTrigger вызывает обратную передачу всей страницы, тогда как AsyncPostBackTrigger выполняет AJAX-вызов из UpdatePanel. Все элементы внутри UpdatePanel автоматически вызывают AsyncPostBackTrigger с, а все элементы вне панели вызывают PostBackTrigger с.

Итак, чтобы решить вашу проблему, просто удалите весь раздел Triggers.

...