当页面获得回发时,动态填充的div控件变为空白

时间:2012-01-01 15:12:02

标签: jquery-ui jquery timer asp.net-ajax postback

我正在开发asp.net,C#web应用程序。 在应用程序中处理我的主页面,其中所有代码都是同步的并且运行良好。

现在,我需要使用ajax JQuery Asyn更改一些功能。调用。就我而言,它对我有用。一切都很好。

现在我的页面正在使用asp.net AjaX Timer Control,每隔一分钟就会出现一次。这是需要的功能之一,无法使用jQuery进行更改。

现在,当我的计时器事件(Tick)每隔一分钟触发时,我的动态填充div(ajax jquery的html())在页面获得回发时变为空白。

即。考虑我的页面具有id = div1的div,并且这充满了ajax jQuery调用,它返回我的远程页面的html,因此其内容完全是动态的。 当页面被触发时,该div为空白..

当我的网页回复时,如何让我的div保持原样?

(想想这可能是因为Gmail在同一件事上工作,它们是如何保留的?)

如果不清楚,请告知我是否需要更多详细信息。

以下是带有ajax调用的图像。

enter image description here

现在,当页面获得回发时,它就像下面的......

enter image description here

我不可能在这里提供复杂的代码,我怎么在这里给出一个示例代码。

<asp:ScriptManager ID="Scriptmanager1" runat="server">
</asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="5000" OnTick="Timer1_Tick" Enabled="true">
</asp:Timer>
<div>
    <asp:Button Text="text" runat="server" OnClientClick="callfun();return false;" />
</div>
<asp:Button Text="text" runat="server" ID="btn" OnClick="btn_Click" />
<div id="div1">
</div>
<script>

    });
    function callfun() {
        $("#div1").html("test me, test me");
    }
</script>

代码背后.....

  protected void Page_Load(object sender, EventArgs e)
{

}
protected void btn_Click(object sender, EventArgs e)
{
    Response.Write("postback");
}
protected void Timer1_Tick(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(2000);
}

1 个答案:

答案 0 :(得分:1)

请使用pageLoad()。每次更新面板刷新后都会触发它。

var cached_html;
$(document).ready(function() {
    cached_html = "html returned from an ajax call"
    $("#div1").html(cached_html);
});

function pageLoad() {
    $("#div1").html(cached_html);
    //if this doesn't work, you need to make ajax call each time the refresh happens
}

暂时忘记gmail。他们没有 Sys未定义:)