1

我在 updatePanel 中有一个网格视图,我需要每隔一段时间更新一次

到目前为止我在更新时发现的updatepanel是:

   <asp:UpdatePanel ID="UpdatePanel2" runat="server" OnLoad="Button1_Click">
        <ContentTemplate>
            <fieldset>
            <legend>UpdatePanel</legend>
            <asp:Label ID="Label2" runat="server" Text="Panel created.">
             </asp:Label>
            <asp:Button ID="Button1" runat="server"   
           OnClientClick="__doPostBack('UpdatePanel2', '');" Text="Button" />
            </fieldset>
        </ContentTemplate>
    </asp:UpdatePanel>

和这个子

  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Label2.Text = "Refreshed at " & _
        DateTime.Now.ToString()
End Sub

虽然这工作正常并更新面板但它postback是整个页面,你可以告诉你什么时候看到所有图像重新加载到另一个面板中,我计划每秒更新一次这个面板

问题是如何在UpdatePanel2不影响回发的其他面板的情况下进行更新

编辑

另一个问题是否有任何东西在服务器端运行回发?

谢谢

4

1 回答 1

3

从 NET 3.5 开始,有Web.UI.Timer控件:

以定义的时间间隔执行异步或同步网页回发。

它能够与UpdatePanels一起使用,确保数据(例如 ViewState 和更新的控件值)不会丢失,并且“只是另一个 WebForm 控件”。但是,计时器仍然必须导致 [部分] 回发通过页面生命周期并再次重新绑定网格。

根据具体的用例,最好使用真正的AJAX 方法来最小化页面生命周期和数据大小开销。(Telerik、DevExpress 和其他第 3 方库支持其 Grid 控件的“轻量级回调”。更轻量级的变体可能包括 jqGrid。)

于 2012-09-18T18:35:25.407 回答