0

<asp:Label ID="ceckSlide"/>在我的 aspx 页面中有一个,并且想在我的模型中不断更新这个标签,以便标签不断变化for。我想知道这是否可能,如果可以,我将如何去做,

从伪代码可以看出,我是add services在aspx页面中调用方法,想按照createServices类中的for循环更新表格。

创建服务类

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;
}

defaul.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;
 }
4

3 回答 3

1

最简单的方法是将标签放在 UpdatePanel (AJAX) 中,并在页面中放置一个客户端计时器 (javascript),每隔几秒(或任何您希望的)发送一个更新请求。在服务器端,只需异步更新您的模型,更新标签值的函数应该直接从模型中读取。希望有帮助。

于 2013-02-12T10:53:43.780 回答
0

您可能想看看PokeIn Library - ASP.NET WebSocket & Comet Ajax Library (Reverse Ajax - Server Push)

文档网页

... PokeIn 从 .NET 类生成动态 JavaScript 代码,让您可以像从同一侧调用方法一样调用它们。

于 2013-02-12T11:14:27.513 回答
0

我认为问题在于您不太了解 HTTP 协议的工作原理。HTTP 使用请求/响应模型,其中客户端(通常是 Web 浏览器)发出请求,然后服务器响应。

实现您所描述的自动更新功能时使用的典型架构正是@dotNET 所描述的 - 客户端页面有一些 javascript 会以设定的时间间隔自动触发请求。服务器以更新的状态进行响应。您可以根据需要将此间隔设置得尽可能小,但较短的间隔有时会导致机器速度慢或互联网连接速度慢的用户出现问题。

虽然可以在不了解请求/响应周期的情况下开发简单的 Web 应用程序,但更高级的开发(如您所描述的)实际上需要您对 Web 的体系结构有透彻的了解。如果您不了解 HTTP 协议,我建议您花一些时间来学习它 - 少量的投资将在您的代码的有效性和效率方面带来巨大的收益。REST是一个很好的起点,因为它的建议最符合 HTTP 规范。

于 2013-02-12T15:15:51.257 回答