asp.net textbox 刷新问题(不是WINFORM)

来源:百度知道 编辑:UC知道 时间:2024/07/04 03:28:16
public delegate void DelegateShowmessage(string message);
public void Showmessage(string message)
{
TextBox1.Text += "客服" + " 说:\r\n" + message+ "\r\n\r\n";
}
protected void web_thread()
{
.....
DelegateShowmessage hr = new DelegateShowmessage(Showmessage);
.....
hr.Invoke(temp_mess);
...
}
protected void send_Click(object sender, EventArgs e)
{
TextBox1.Text = "你" + " 说:\r\n" + say.Text+ "\r\n\r\n"+TextBox1.Text;
say.Text = "";
}

问题:为什么上面的TextBox1和下面的TextBox1里面的值不一样?
有什么办法可以在更新上面的TextBox1值的时候,更新控件显示的信息?
下面的TextBox1正常...
还有,废话不要
回1楼:这种写法可以得到服务器发过来的数据,但是不知道怎么把数据输出到我想要的控件上,结果showmessage里面,调试的时候,可以看见两个同名的变量的值完全无关.....如果分开页来做,好像刷新的时候,历史消息都会刷掉,而且界面不好看..
网上看到的asp.net无刷新的,都是在一个页里面再放一个页,让里面的页不停刷新...输出都是用respon.write.这刷一下就完蛋了
我的想法是调用webse

加我qq
请把问题说的详细些,在这上面看代码很费劲。
qq:274107336

针对问题补充的补充:
这种类似聊天室的通常需要依靠传统的WEB开发技术而非ASP.NET.一般的做法是在网页内放一个div,给一个id.然后输出数据时在JAVASCRIPT里用getDocumentByID("divId").innerHTML来改变.楼主可以搜索一下asp.net无刷新.都是此类解决方式.分开页并不是真正的分开,只是一张页面做显示而且这张页面打开后就不再刷新,另一张页面是后台,通过第一张页面里XMLHTTP方式不断请求后台页面里的内容.
如果是我做的话,给每句话一个自增量ID,每次向后台请求新的对话时加上这个ID,将新的对话内容在前台显示时只要在显示区域内添加内容就好了,不会覆盖掉老的内容.也就是类似$("lyb").innerHTML = str + $("lyb").innerHTML;的方式.

此类需求就不用过多依赖于ASP.NET的代码了.当然ASP.NET AJAX 1.0也有很多无刷新技术,楼主有兴趣可以研究一下,但自动生成的代码量比较大,不如自己写来得精简.

--------------------
说实话这种写法第一次看到

看意思应该是客服交流平台,用户发言触发send_click事件.然后另外有个线程显示客服发言.有可能用户写一句话客服写多句.

但是这种情况的做法通常是用AJAX来做,并非楼主的做法.......
在服务器端做个CACHE或数据库或XML保存,某张页面例如showMsg.aspx可以输出(也可以差量输出),在前台页面例如show.aspx,在javascript里加个定时器不断向服务器端提交请求,如果有新的留言信息就在前端显示.

因为用ASP.NET不象WINFORM编程,如果不向服务器发起HTTP请求是无法获取新的服务器端数据的,因此在ASP.NET里多线程使用极少.我也只是在两三种文件转换过程中为防止用户界面长时间等待才用多线程.连ASP.NET书里讲多线程编程也很少.