0

この aspx コード例では、ListView の UpdatePanel 内のタイマーは非同期更新を行いません。このコードでは、AJAX がここに存在しないように、ページ全体を更新します。この問題を解決するにはどうすればよいですか?

<form id="form1" runat="server">
  <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:Label ID="Label1" runat="server" Text="SIMPLE FIELD"></asp:Label>
    <br />
    <asp:ListView ID="DataListView" runat="server">
        <ItemTemplate>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Timer ID="Timer1" runat="server" Interval="500"></asp:Timer>
                    <asp:Label ID="Label2" runat="server" Text="AJAX"></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
        </ItemTemplate>
    </asp:ListView>
</div>
</form>
4

2 に答える 2

1

UpdatePanel で ListView 全体をラップする必要があります。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ListView ID="DataListView" runat="server">
           <ItemTemplate>            
                <asp:Timer ID="Timer1" runat="server" Interval="500"></asp:Timer>
                <asp:Label ID="Label2" runat="server" Text="AJAX"></asp:Label>                
            </ItemTemplate>
        </asp:ListView>
    </ContentTemplate>
 </asp:UpdatePanel>
于 2013-02-26T21:20:21.503 に答える
0

ListView は独自のレンダリングを行わないため、UpdatePanel が更新する「親」アイテムを特定できないという問題があると思います。UpdatePanel の設計の残念な結果だと思います。

などの独自のコンテナー コントロール内に UpdatePanel を配置して、正しい結果が得られるかどうかを確認することをお勧めします。

于 2013-02-26T21:19:23.990 に答える