2012-01-01 77 views
1

我正在研究asp.net,C#web應用程序。 在應用程序的主頁上工作,所有的代碼都在同步並運行良好。動態填充div控件在頁面獲取回傳時變爲空白

現在,我需要改變一些使用ajax JQuery Asyn的功能。調用。在我的情況下,它適用於我。一切安好。

現在我的網頁有asp.net AjaX Timer Control,它每隔一分鐘就會觸發一次。這是需要在那裏並且無法使用jQuery進行更改的功能之一。現在,當我的計時器事件(Tick)每隔一分鐘就會觸發一次,當頁面被回傳時,我的動態填充的div(html()的ajax jquery)變爲空白。

即認爲我的網頁有div與id = div1,這充滿了jQuery jQuery調用,它返回我的遠程頁面的html,所以它的內容是完全動態的。 當網頁被炒魷魚,該分區是空白..

我怎樣才能讓我的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

請張貼代碼和*相關* HTML。另外,我不清楚:AJAX調用是空白還是完全回發? – tvanfosson 2012-01-01 15:14:07

+0

請顯示您的jquery調用和其中稱爲 – naveen 2012-01-01 15:15:23

回答

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現在。他們沒有系統是未定義 :)

+0

您的解決方案是正確的事件,但如果我需要填寫一個按鈕,而不是在文檔中的HTML點擊。 ready(), – 2012-01-01 17:06:08

+0

在這種情況下,它將作爲div的靜態HTML文本,如果我沒有錯 – 2012-01-01 17:06:57