在不刷新页面的情况下更新文本框内部文本
本文关键字:文本 更新 内部 情况下 刷新 | 更新日期: 2023-09-27 17:57:03
我正在和一些朋友开发一个平台,作为大学科目的项目。我们试图使用 ASP.NET 制作一个IRC,但我们现在面临着一个问题。
我们有这个文本框:
<asp:TextBox ID="txtLog" runat="server" TextMode="MultiLine" AutoPostBack="True"></asp:TextBox>
然后我们在代码隐藏中有一个函数,该函数检查您是否仍然连接到我们的服务器,如果您仍然连接到我们的服务器,它会读取来自他的流并将其附加到 TextBox。
txtLog.Text += string.Format(strReceptor.ReadLine() + "'r'n");
问题是,此文本框的属性文本已更新,但在页面中未显示。如何在不刷新页面的情况下更新网页上文本框中的文本?我们不想刷新页面,因为如果我们这样做,我们将失去与服务器的连接。
我们知道我们可以使用 JavaScript 来更新它,但我们没有成功。我们尝试了一个函数,但它只被调用了一次。
更新 Text 属性的函数位于在新线程上运行的循环中,以便它不断检查是否有内容从服务器中出来,以及它是否确实将其附加到 TextBox。
提前感谢!
也许你可以用ajax试试这个:
var addedStr = '';
var oldValue = $('#' + <%=txtLog.ClientID%>).val();
$('#' + <%=txtLog.ClientID%>).val(oldValue + addedStr);
我将在这里发布我们遵循的解决方案,以帮助那些以后可能会赶上这篇文章并且目前面临与我们相同的问题的人。
ASPX 页代码:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="UpdateTimer" runat="server" Interval="1000" OnTick="UpdateTimer_Tick" Enabled="True"></asp:Timer>
<asp:UpdatePanel ID="TimedPanel" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
</Triggers>
<ContentTemplate>
// Content to be updated each 1000ms
</ContentTemplate>
定时器的相关属性:
- 间隔:表示此内容将花费的时间(以毫秒为单位)更新
- OnTick:代码后面的方法,每个代码后面都会执行一米利秒
代码隐藏:
protected void UpdateTimer_Tick(object sender, EventArgs e)
{
// Code to be executed with the timer is triggered
}
就这么简单。有任何问题,请回答我可以尝试解决!祝你好运!