数据可用后,在updatepanel内刷新gridview

时间:2014-07-17 12:07:32

标签: javascript asp.net ajax

我想显示asp.NET页面,其中包含4个更新面板和按钮点击时的数据刷新和第一次。我的问题在下面

  1. 如何首先加载页面内容然后再加载数据?我不想在页面加载中保留我的dataload方法
  2. 无论如何都要从后面的代码刷新页面/ updatepanel(我确实从后面的代码中调用了__dopostback事件或javascript ..它没有用)
  3. 感谢您的帮助

               <asp:UpdatePanel ID="UpdatePanel1"   UpdateMode="Conditional" runat="server">
           <ContentTemplate>
                            <button id="btnCrashRefresh" onserverclick="btnCrashRefresh_ServerClick" type="submit" runat="server" class="btn btn-default pull-right" style="padding-top: 0px;padding-bottom: 0px;"><span class="glyphicon glyphicon-refresh" ></span></button>
    
                                <asp:Label ID="Label1"  class=" label-info pull-right" runat="server" Text="<Date time>" ></asp:Label>
                      </ContentTemplate>            
            </asp:UpdatePanel>
    

    背后的代码

     System.Timers.Timer myTimer = new System.Timers.Timer();
    
    
    protected void Page_Load(object sender, EventArgs e)
    {
    
        if (! Page.IsPostBack)
        {
            SetInitialValues();
    
            btnCrashRefresh.ServerClick += new EventHandler(btnCrashRefresh_ServerClick);
    
            myTimer.Interval = 2000;
            myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Start();
    
    
        }
    }
    
    void myTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
    
           string script = "DoPostback();";
    
            ScriptManager.RegisterStartupScript(btnCrashRefresh, this.GetType(), "Refresh", getjQueryCode(script), true);
    
    
    
        }
    

    的Javascript

    function DoPostback() {
                 __doPostBack('<%=btnCrashRefresh %>');
    
             }
    

2 个答案:

答案 0 :(得分:0)

因为我是一名VB.NET开发人员:

1- ASP.NET中的页面有一个生命周期,是的,你是对的,在LOAD上使用它并不是一个好主意。以下是页面生命周期ASP.NET Life Cycle的简要说明,您可以将所有数据绑定到面板的最佳部分位于PreRender

2-这是一个按钮点击?如果是这样,你几乎需要这样的东西:

 Public Sub btnRefresh_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
    updatePanel1.Update()
    updatePanel2.Update()
    updatePanel3.Update()
    updatePanel4.Update()
End Sub

这是C#Vers:

public void btnRefresh_Click(object sender, System.EventArgs e)
{
    updatePanel1.Update();
    updatePanel2.Update();
    updatePanel3.Update();
    updatePanel4.Update();
}

我希望这能满足您的需求:)

答案 1 :(得分:0)

您可以使用AJAX中的Timer控件定期刷新数据。 为此添加一个计时器控件。设置其间隔(以毫秒为单位)并生成其tick事件处理程序方法,并创建一个函数将数据加载到控件中,如下所示:

private void LoadData()
{
   //Load you data here
}

如果 LoadData并在

中,请使用pageload方法调用此IsPostBack方法

计时器的嘀嗒事件。

相关问题