delegate void SetTextCallback( string text );
private void UpdateControl( string text ) {
if ( this.myLabel.InvokeRequired ) {
SetTextCallback d = new SetTextCallback( UpdateControl );
this.Invoke( d, new object[] { text } );
}
else {
this.myLabel.Text = text;
}
}
我有一个 WinForm 应用程序,在这个应用程序中,我使用线程来访问UI控件并更新它们。
现在,我想将此代码转换为 ASP.NET Web窗体,但 Web窗体无法使用InvokeRequired
和Invoke
方法。
Web窗体中的Invoke
,InvokeRequired
方法的等效内容是什么?如何在 ASP.NET Web窗体<中实现和更新UI控件? /强>
我使用此UpdateControl
的情况是我会将一些文件发布到文件夹中。这些标签将显示现在发生了什么,现在正在发送哪个文件,以及现在正在更新哪个数据库。
答案 0 :(得分:0)
WinForms
和WebForms
UI是完全不同的世界,在其他框架中重写UI时,您应该根据该框架的概念设计UI,而不仅仅是寻找等价物。
您似乎需要使用 javascript , jQuery 等库以及 ajax 等概念来获取Windows窗体应用程序中的内容。
Web应用程序中此类任务的等效项可能是使用 javascript 更改客户端中的UI,例如在计时器中或 ajax 调用成功后或之后其他一些事件。
此外,如果您以某种方式使用WbForms
,可以将此类任务与使用 UpdatePanel 或使用 Ajax Control Toolkit 进行比较来更改UI。
对于该特定任务,在Webforms中上传文件,您可以查看AjaxFileUpload
。