【问题标题】:How to refresh a label without reloading the page如何在不重新加载页面的情况下刷新标签
【发布时间】:2012-05-18 11:32:53
【问题描述】:

我想刷新页面上的标签而不重新加载页面。

该页面用于发送短信。因为我使用的是连接到 COM 端口的 GSM 调制解调器,所以每个文本大约需要 3 秒的时间。 (我使用串行 GSM 调制解调器而不是在线服务或 USB 连接的原因很长。)

可以指定多个数字,以";" 分隔。我想在发送每个文本后立即更新页面;但目前它只是在最后一口气更新标签。实现这一目标的最简单方法是什么?想法可能是 AJAX、JavaScript 或线程。 (正如我所说,简单就是好!)

当前代码:

SerialPort sp = new SerialPort("COM1", 115200, Parity.None, 8, StopBits.One);
        try
        {
            String[] numbers = tbNo.Text.Split(';');


            foreach (string n in numbers)
            {

                sp.Open();

                sp.Write("AT+CMGF=1" + (char)(13));

                Thread.Sleep(200);

                sp.Write("AT+CMGS=" + n.Replace(" ", string.Empty) + (char)(13));

                Thread.Sleep(200);

                sp.Write(tbMsg.Text + (char)(13) + (char)(26));

                Thread.Sleep(3000);

                sp.Close();

                Label1.Text = Label1.Text + "Message sent to " + n + "<br />";

            }

        } catch (Exception error) {

            Label1.Text = error.Message;
        };

【问题讨论】:

  • Ajax, Javascript。 (这就是 j 的意思)

标签: c# .net refresh page-refresh


【解决方案1】:

如果您有 ASP.net,最好的方法是在服务器端创建一个服务,它可以是 WCF Rest 服务,以 ajax 调用的形式向服务器发送一个发布请求,并在收到结果后在 javascript 中更改 label text .

【讨论】:

    【解决方案2】:

    您肯定想为此使用一些 AJAX。实际上很容易实现的一种方法是使用SignalR

    SignalR 是一个支持客户端和服务器之间实时连接的框架。这使您的代码更容易。如果您不使用 SignalR,则必须手动实现轮询(客户端浏览器每隔 X 秒向服务器询问您的任务状态是什么)之类的东西,或者对此进行一些变体。

    SignalR 隐藏使用的底层机制并在服务器和客户端之间创建连接。

    您在服务器上的代码如下所示:

    public class SmsHub : Hub
    {
       public Task SendMessages(string input)
       {
          // ... send sms message
    
         Caller.updateStatus('Message send!');
       }
    }
    

    在您的客户端上,您将使用 javascript 集线器发送和接收消息。 updateStatus 函数可以将 HTML 消息附加到某些信息 div 中。

    这是 Scott Hanselman 写的很好的 blog post,它也可以帮助您入门。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-20
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2019-03-02
      相关资源
      最近更新 更多