在这个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>
答案 0 :(得分: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>
答案 1 :(得分:0)
我认为可能存在一个问题,因为ListView没有自己进行任何渲染,UpdatePanel无法找出要更新的“父”项。我认为这是UpdatePanel设计的一个不幸后果。
我建议尝试将UpdatePanel放在自己的容器控件中,例如a,看看是否会产生正确的结果。