2010-09-27 51 views
1

我正在創建一個我的第一個Asp.Net工具,我碰到了一個小凹凸。爲什麼谷歌瀏覽器在回發中完成整頁重新加載?

目前我正在做一個buttonclick的回發,它執行一些服務器端計算。服務器端代碼然後使用這些計算來更改div的內容。在IE和Firefox發生回發時,div會按預期進行更新。

但是,在chrome中,所有回發都會完整刷新整個頁面。是什麼導致這種情況,並有解決此問題的方法嗎?

更新: 客戶方,我有以下..

<asp:Button ID="Button2" Style="float: right" runat="server" 
OnClick="S_ButtonClick" Text="Calculate" /> 

其中要求概括爲這樣的方法。

protected void S_ButtonClick(object sender, EventArgs e) 
    { 
     //Code parsing values from textboxes ect. 

     //Do Some Calculations 

     //Output Results 
     outputDiv.InnerHtml = "<h2>Foo</h2><br/>"; 
     outputDiv.InnerHtml += "Bar: " + calcValue; 

    } 

這是可能的,當這個回傳(如果我正確地理解這一點)發生時,它仍然完全Firefox和IE重裝,但它並沒有表現出來。這有效地掩蓋了回發。但是,當我在Chrome中進行測試時,任何回發都會在重新加載狀態之前完全消隱頁面。希望這能夠清楚我所要求的。另外,我的C#/ .Net使用情況可能存在一些小缺陷,我願意對此發表評論。

+2

AFAIK,除非您使用AJAX,否則這是回發時的預期行爲。你在使用任何AJAX庫嗎? – InSane 2010-09-27 03:23:59

+0

你需要提供更多關於你在做什麼的信息。通常情況下,回發確實會導致整個頁面刷新,因此聽起來像您在談論ASP.NET AJAX,而不是傳統的回傳。 – 2010-09-27 03:24:02

+2

我認爲你在談論回調,而不是回傳。如果您使用的是更新面板,並且您在網頁上運行了任何JavaScript,則可能需要確保它在Chrome中運行。有時,斷開的客戶端驗證器會導致更新面板中的問題,導致回發而不是回調。 – 2010-09-27 03:27:29

回答

2

據我所知,ASP.NET AJAX部分回發僅支持ASP.NET可以檢測到的瀏覽器。最後一次我聽到(即前),即Firefox和Safari,而不是Chrome。在這種情況下,它採取全面回發。

要實現頁面更新我真的建議你切換到jQuery或另一個廣泛支持的AJAX工具包。 (如果這是個問題,jQuery是由微軟提供的支持)有一些涉及更多的管道,但並不多。

+0

那麼這將允許我執行必要的狀態更新和服務器端代碼執行時,類似複選框被點擊,所有沒有執行回發? – maleki 2010-09-28 00:39:36

+0

正確。從JavaScript中,您可以使用「$ .ajax」函數在服務器上調用頁面。該頁面將在服務器上執行,您可以將響應(html或其他方式)並將其附加到頁面上的div或其他內容中。 http://docs.jquery.com/Tutorials – Doobi 2010-09-28 06:20:59

+0

我發佈了我的解決方案作爲答案,但我會接受你的,因爲它似乎更合適。 – maleki 2010-09-28 18:57:54

相關問題