2013-02-12 75 views
0

我有我的aspx頁<asp:Label ID="ceckSlide"/>並想更新這個標籤經常使標籤不斷根據for循環變化形態在我的模型類。我想知道這是否可能,如果是的話,我會怎麼做,更新標籤asp.net C#

從僞代碼可以看出,我打電話給aspx頁面的add services方法,並想更新該表按照for循環中的createServices類。

類CreateServices

private int number = 0 
priavte int numbercount = 0; 

public void addservices() 
{ 
    numbercount = services.count; 

    for(int i = 0;i<service.count;i++) 
    { 
     ///add services 
     number = i+1; 
    } 
} 

public int GetNumber() 
{ 
    int number= number; 
    return slide; 
} 
public int GetSlideCount() 
{ 

    return numberCount; 
} 

defefaul.aspx

protected void Confirm_Click(object sender, EventArgs e) 
{ 
    var ser = new CreateServices(); 
    var addSer = ser.addservices() 
} 

// label get updated in this method in the aspx file 
protected void GetSlideNumber() 
{ 

    var ser = new CreateServices(); 
    int number= ser .GetSlideNumber(); 
    int numberCount = ser.GetSlideCount() + 1; 

    ceckSlide.Text = slide.ToString() +" Of "+slideCount; 
} 
+2

客戶端請求一個頁面,而不是服務器更新客戶端。 – 2013-02-12 10:36:01

+0

你能否包含更多的代碼並解釋你到底想達到什麼目的? – 2013-02-12 10:36:22

+0

@TimSchmelter,不一定正確,請參閱[Comet](http://en.wikipedia.org/wiki/Comet_(編程)):) – 2013-02-12 10:37:09

回答

1

你最簡單的方法是把在一個UpdatePanel(AJAX)的標籤,並把客戶端定時器(JavaScript)的在您的頁面每隔幾秒發送一次更新請求(或任何您想要的)。在服務器端,只需簡單地更新模型,並且更新標籤值的函數應該直接從模型中讀取。希望有所幫助。

+0

這將如何完成 – user2061088 2013-02-12 10:56:19

+0

看看這是否可以幫助您:http://stackoverflow.com/questions/1732553/how-can-i-have-an-ascx-postback-and-refresh-itself-automatically-every-x-seconds?rq=1 – dotNET 2013-02-12 11:07:02

+0

是真正地沒有幫助監守我仍然不明白它,這將與thw for循環工作 – user2061088 2013-02-12 11:12:25

0

我認爲這個問題是,你不太明白HTTP協議是如何工作的。 HTTP使用請求/響應模式,客戶端(通常是Web瀏覽器)發出請求,然後服務器響應。

實現所描述的自動更新功能時使用的典型架構正是@dotNET所描述的 - 客戶端頁面有一些javascript,它會自動在設定的時間間隔觸發一個請求。服務器響應更新的狀態。您可以根據需要儘可能縮小此間隔,但較短的間隔有時會導致使用較慢機器或較慢互聯網連接的用戶出現問題。

雖然可以在不請求/響應週期的許多知識來開發一個簡單的Web應用程序,更先進的發展(如你所描述),幾乎需要你有Web架構的全面理解。如果您不瞭解HTTP協議,我建議您花一些時間來了解它 - 小型投資將爲您的代碼效率和效率帶來巨大的收益。 REST是一個很好的開始,因爲它的建議最貼近HTTP規範。