0

在这个 aspx 代码示例中,ListView 中 UpdatePanel 中的 Timer 不会进行异步刷新。在这段代码中,它刷新了整个页面,就像这里不存在 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

您应该将整个 ListView 包装在 UpdatePanel 中。

<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 放在它自己的容器控件中,例如 an 并查看是否会产生正确的结果。

于 2013-02-26T21:19:23.990 回答