ASP.net定期从onClick函数显示信息

时间:2014-11-16 05:57:27

标签: asp.net button onclick wait

问题是当按下按钮时,所有数据立即显示在文本框中。我试过thread.sleep,它没有按照我想要的方式工作。该按钮仅按一次。谁能指点我正确的方向?提前谢谢。

喜欢这样

我吃了一个苹果。 我吃了一个梨。 我吃了桃子。

我想要这个

我吃了一个苹果。 等一下

我吃了一个梨。 等一下

我吃了桃子。 等一下。

2 个答案:

答案 0 :(得分:0)

我假设使用“asp.net”,您的意思是Asp.net webforms应用程序。 您无法从服务器端/代码隐藏中执行此操作。当用户单击按钮时,它会触发回发,这意味着点击(包括所有表单值)都会发送到服务器。然后,服务器创建一个新的网页,作为返回帖子发送回客户端。

所以thread.sleep只会减慢服务器的速度。客户端收到新页面需要更长的时间。

回到小时问题。做你想要的最好的方法是在客户端使用javascript。

答案 1 :(得分:0)

你不能用服务器端代码(比如你已经尝试过Thread.Sleep)这样做了,正如上面的答案中已经解释的那样!所以我将为此提供javascript示例。

注意:您可以使用此示例中使用的asp:buttonasp:textbox替换按钮,文本框。



var texts = ["I eat an apple. wait a second",
  "I eat a pear. wait a second",
  "I eat a peach. wait a second."
];

var counter = 0;
var to_tim;

function ShowData() {
  alert("wait for 1 sec., it will start automatically");
  to_tim = setInterval(function() {
    OnShowData()
  }, 1000);
}

function OnShowData() {
  if (counter == 3) {
    StopText();
    return;
  }

  document.getElementById("txt").value = texts[counter];
  counter++;
}

function StopText() {
  clearInterval(to_tim);
}

<input type="text" id="txt" readonly="readonly" />

<input type="button" id="btn" value="initiate" onclick="ShowData();" />
&#13;
&#13;
&#13;