Панель обновления Ajax в Nested Listview не работает - PullRequest
0 голосов
/ 01 июля 2011

У меня есть панель обновления Ajax внутри вложенного списка, как показано ниже.

<% @ Page Title = "LV Ajax" Language = "VB" MasterPageFile = "~ / MasterPages / SimpleMasterPage.master" AutoEventWireup = "false" CodeFile = "LV Ajax.aspx.vb" Inherits = "LV_Ajax"%>

ListView Ajax

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
    <asp:ListView ID="OuterListView" runat="server" DataSourceID="SqlDataSource1">
    <EmptyDataTemplate>

        No Data Available.
    </EmptyDataTemplate>
    <ItemTemplate>
        <asp:Label ID="PhotoAlbumIdLabel" runat="server" Text='<%# Eval("PhotoAlbumId") %>'
            Visible="false" />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:ListView ID="InnerListView" runat="server" DataSourceID="SqlDataSource2">
                    <EmptyDataTemplate>
                        <span>No data was returned.</span>
                    </EmptyDataTemplate>
                    <ItemTemplate>
                        <br />
                        <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' ToolTip='<%# Eval("ToolTip") %>'
                            Width="400px" Height="300px" />
                        <br />
                    </ItemTemplate>
                    <LayoutTemplate>
                        <div id="itemPlaceholderContainer" runat="server" style="">
                            <span runat="server" id="itemPlaceholder" />
                        </div>
                        <asp:DataPager ID="DataPager1" runat="server" PageSize="1">
                            <Fields>
                                <asp:NextPreviousPagerField FirstPageText="&lt;&lt;" ShowFirstPageButton="True" ShowNextPageButton="False"
                                    PreviousPageText="&lt&nbsp" ShowPreviousPageButton="True" />
                                <asp:NumericPagerField />
                                <asp:NextPreviousPagerField LastPageText="&gt;&gt;" ShowLastPageButton="True" NextPageText="&nbsp&gt"
                                    ShowNextPageButton="True" ShowPreviousPageButton="False" />
                            </Fields>
                        </asp:DataPager>
                        </span>
                    </LayoutTemplate>
                </asp:ListView>
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:RenaissanceConnectionString1 %>"
            SelectCommand="SELECT [ToolTip], [ImageUrl], [Description], [PhotoAlbumId], [SortOrder] FROM [Picture] WHERE ([PhotoAlbumId] = @PAId) ORDER BY [SortOrder]">
            <SelectParameters>
                <asp:ControlParameter ControlID="PhotoAlbumIdLabel" DefaultValue="0" Name="PAId"
                    PropertyName="Text" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>
        <br />
        </span>
    </ItemTemplate>
</asp:ListView>

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

Это работало правильно, поэтому, если вы считаете, что код верен, возможно, вы могли бы предложить некоторые другие изменения.

Если есть гений, который может предложить решение, он будет признателен.

Большое спасибо в ожидании.

Ответы [ 2 ]

1 голос
/ 08 мая 2012

Может быть, если вы добавите ChildrenAsTriggers = "true" и установите для параметра UpdateMode значение "Условно", это будет работать для вас.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
0 голосов
/ 01 июля 2011

В вашем теге <ASP:UpdatePanel> отсутствует элемент <Triggers>.

Я думаю, это должно быть что-то вроде

 <asp:UpdatePanel ... >
 <Triggers>
  <AsyncPostBackTrigger ControlID='DataPager1'>
 </Triggers>
  <ContentTemplate> .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...