Требуется помощь AJAX UpdatePanel - PullRequest
       5

Требуется помощь AJAX UpdatePanel

0 голосов
/ 31 августа 2010

У меня есть следующий код ASPX:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
                        <asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional">
                            <ContentTemplate>
                                <asp:Button runat="server" ID="UpdateButton1" OnClick="NextImg_Click" Text="Update" />
                                <asp:Repeater runat="server" ID="urlsUpdateRepeater">
                                    <ItemTemplate>
                                        <!-- THIS WOULD BE A LOOP FROM HERE -->
                                        <!-- OPENS RESULT ITEM DIV CONTAINER -->
                                        <div id="result_item">
                                        <a href="<%# Eval("myUrl") %>" target="_blank">
                                                                    <%# Eval("urlPageTitle")%></a>
                                    </ItemTemplate>
                                </asp:Repeater>
                            </ContentTemplate>
                        </asp:UpdatePanel>

У меня есть событие NextImg_Click(), которое работает нормально.

Я использую этот код для DataBind ... что такое метод обновления?

urlsUpdateRepeater.DataSource = resultsCollection;
urlsUpdateRepeater.DataBind();

Казалось бы, все в порядке. Но каждый раз, когда нажимается кнопка «Обновить», она перерисовывает всю страницу, а не только панель обновления с частичной обратной передачей.

Это сводит меня с ума полностью сумасшедший , поскольку я не вижу ничего плохого в коде. Есть ли что-то простое, что мне не хватает ?! Пожалуйста, помогите!

Поиск и данные отображаются правильно (внутри панели), они просто не будут выполнять частичную обратную передачу.

Ценю вашу помощь с моими проблемами с нубами!

Ответы [ 3 ]

0 голосов
/ 31 августа 2010

Взято из MSDN:

Используйте RegisterAsyncPostBackControl метод регистрации элементов управления вне Элемент управления UpdatePanel как триггеры для асинхронные обратные передачи и потенциально обновить содержимое панель обновления. Чтобы обновить UpdatePanel контролировать программно, вызвать Метод обновления.

Итак, вы управляете (UpdateButton1) внутри панели обновления, нет необходимости в вызове ScriptManager1.RegisterAsyncPostBackControl - отбросьте его, и ваша проблема решена.

0 голосов
/ 31 августа 2010

Проблема заключалась в том, что мой тег <form> был вложен в документ дальше, чем соответствующий ему конечный тег (с предупреждением!) ...

После перемещения тега формы - это сработало!

Искренне моя вина, спасибо, ребята.

0 голосов
/ 31 августа 2010

Поскольку кнопка находится внутри ContentTemplate вашей панели обновления, нет необходимости предпринимать какие-либо дополнительные действия для получения частичной обратной передачи страницы.

Попробуйте удалить строку из метода Page_Load().

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