2013-02-12 42 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规范。