2013-01-02 60 views
1

我在asp.net中創建了一個頁面。它正在訪問數據庫中的數據。我想要的是每當我更改數據庫中的數據時,更改應自動反映在頁面上,而無需用戶按刷新按鈕。有人告訴我如何執行此操作。可以用java腳本來完成。自動刷新數據庫更新頁面

回答

1

您可以使用web sockets將數據發送到連接的客戶端,也可以使用AJAX,jQuery ajax彙集服務器的數據庫更改,或者您可以使用asp.net ajax timer控制。使用asp.net ajax計時器會比其他人更直接。

使用asp.net定時器

的Html

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
    <asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" /> 
    <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" /> 
     </Triggers> 
     <ContentTemplate> 
      <asp:Label runat="server" id="DateStampLabel" /> 
     </ContentTemplate> 
</asp:UpdatePanel> 

後面的代碼(服務器端代碼)

protected void UpdateTimer_Tick(object sender, EventArgs e) 
{ 
    // Update the ui with database changes 
} 
+0

可以請您給我一些例子 – user1852933

+0

首先,你必須決定在可能的方法中選擇什麼,你可以使用asp.net ajax的計時器,這將是更直接的開始,http://ajax.net-tutorials.com/controls/timer-control/ – Adil

1

對於Web頁面的最佳方法是查詢頁面異步使用JavaScript/jQuery的

的javascript:的setTimeout - http://www.w3schools.com/js/js_timing.asp

jquert:$ .ajax - http://api.jquery.com/jQuery.ajax/

  1. 創建循環在指定的時間間隔的功能 - 功能CheckServer(秒)
  2. 創建一個頁面,告訴沒有在服務器上的更新 - Updated.aspx
  3. 使用$阿賈克斯致電Updated.aspx函數CheckServer(秒)並檢查更新。
  4. 當有更新運行代碼以刷新頁面

必要的零件,您可以找到實例爲VS2012 ASP.NET項目位置:

https://docs.google.com/file/d/0B9m3YXHeSTDOakxVbk50MHhhTkE/edit

有是3個重要文件:

  1. UserPage.aspx - 用戶將會看到更新的地方。
  2. MakeUpdatePage。aspx - 管理員進行更新的位置。
  3. 而不是檢查更新vie aspx頁我創建的網絡服務在services.asmx管理更新和數據交換。

該代碼並不完美,只是爲了給你故事的要點,但它的工作原理。我在2個用戶,1個管理員場景中測試了它。

該解決方案有點複雜,因爲我還向您介紹了Web服務。而不是默認的。這些都是一點點定製。它們具有使其能夠被客戶端瀏覽器直接調用的屬性,並返回json對象。所以,你也將學習什麼JSON是...

您可以在此找到有關這些概念的一個很好的文章:

http://www.codeproject.com/Articles/45275/Create-a-JSON-WebService-in-ASP-NET-2-0-with-a-jQu

+0

這是我想到做,但因爲我只是一個初學者,我不完全知道如何去做。你能告訴我一個工作示例或類似的東西 – user1852933

+0

我創建了一個示例。這是一個vs2012 asp.net項目。 https://docs.google.com/file/d/0B9m3YXHeSTDOakxVbk50MHhhTkE/edit – erichste

+0

添加了詳細信息給我的答案...我希望它可以幫助... – erichste