如何在等待长WCF服务调用时在asp文本框上显示消息
How to display messages on the asp textbox while waiting on a long WCF service call
我有两个WCF服务调用:
[OperationContract]
void ClosePeriod();
[OperationContract]
string GetLogs();
ClosePeriod方法运行一个耗时1小时的存储过程,并生成日志消息。GetLogs方法返回ClosePeriod方法生成的日志消息。
在等待ClosePeriod服务调用时,我正试图在ASP.Net网页上显示日志消息。
<asp:UpdatePanel ID="UpdatePanelClosing" runat="server">
<ContentTemplate>
<asp:Timer ID ="TimerLog" runat ="server" Interval ="3000" OnTick="TimerLog_Tick" Enabled="true"></asp:Timer>
<table>
<tr>
<td>
<div style="margin-top: 10px; margin-bottom: 70px">
<asp:Button runat="server" ID="BtnExecuteClosing" Text="Execute" Width="105px" Height="35px" OnClick="BtnExecuteClosing_Click" />
</div>
</td>
</tr>
<tr>
<td>
<p>Process Log:</p>
</td>
</tr>
<tr>
<td colspan="3">
<asp:TextBox ID="TxtProcessLog" runat="server" Width="930px" Height="270" TextMode="MultiLine" Style="resize: none;"
ReadOnly="true" Text="">
</asp:TextBox>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
到目前为止,我尝试异步调用ClosePeriod方法,并尝试使用计时器更新TxtProcessLog文本框。
protected async void BtnExecuteClosing_Click(object sender, EventArgs e)
{
await webservice.ClosePeriodAsync();
}
protected void TimerLog_Tick(object sender, EventArgs e)
{
string log = webservice.GetLogs();
TxtProcessLog.Text = log ;
}
但是,在ClosePeriod服务调用完成后,TxtProcessLog文本框会更新。我做错什么了吗?请提出其他方法。
ClosePeriod做什么?将多个日志写入数据库表?那么您的代码应该可以正常工作。如果"webservice.GetLogs()"返回字符串。empty,则不会显示任何内容。来自UpdatePanel的ClosePeriod调用应该是异步的,否则所有后续调用都将被阻止。
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 输入文本框为空时的阻止按钮asp.网络表单
- 是否<asp:文本框>有一个onFocusLost事件
- ASP.NET MVC,在文本框旁边显示文本
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- 使用javascript清除Asp.NET FreeTextBox(RTF文本框)
- 将调色板添加到ASP.NET文本框中
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 获取中继器控件ASP.Net中显示的单击项目文本框
- 获取ASP.NET标签's在JavaScript中的文本或值
- 如何在asp.net中获取动态创建的文本框web控件的值
- Asp-mvc剃刀将输入文件的值存储在文本框中
- 如何使asp文本框的按键事件
- 在Asp.net的TextBox中插入所需文本的java脚本代码
- 如何在asp.net中从javascript警报到文本框中获取值
- 如何使用javascript在asp.net网页表单上动态添加文本框
- 在光标位置上拆分文本区域的文本.(asp.net C#)
- 语法错误:标识符在数字文本 asp.net 之后立即开始
- 使用 jQuery / 更改链接文本 ASP.NET 不会立即起作用