如何在提交页面之后webservice调用完成之前显示"请等待"

stonepeter 2007-06-04 05:26:57
实在是没找到相关答案,特来问了。
方案1)用Javascript写一个“请等待”...因为种种原因,不能这样用。
方案2)调用webservice方法之前提交页面,调用完成之后再提交一次。
protected void buttonConfirm_Click(object sender, EventArgs e)
{
try
{
MediatorWS mWS = new MediatorWS();

mWS.Credentials = System.Net.CredentialCache.DefaultCredentials;
mWS.Url = System.Configuration.ConfigurationManager.AppSettings["mediatorwsurl"];

//// 这里调用webservice,可能会花很多时间!
ProvisionResponse resp = mWS.ProvisionSubscriber2(username, password, techUsername, techPassword, deviceId);

switch (resp)
{
case ProvisionResponse.Success:
Response.Redirect("Succeed.html");
break;
case ProvisionResponse.InvalidSubscriberAccount:
lbID.Text = "failed";
break;
default:
lbID.Text = "Status unknown";
break;
}
}
}
每次调用那个webservice都要等很长的时间,能不能先在页面上lbID.Text = "Please waiting..."等到调用完成之后再显示其他的值?
...全文
337 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonepeter 2007-06-05
  • 打赏
  • 举报
回复
UPUP。。。
stonepeter 2007-06-05
  • 打赏
  • 举报
回复
其实我想看到的答案是webservice的异步调用。。。
调用前刷新一定页面,调用后再刷新一定页面,那多好啊。。。
stonepeter 2007-06-05
  • 打赏
  • 举报
回复
我的浏览器不支持....问题没答案,我也要结贴了。反正我找到办法了,嘿嘿。
andyli001 2007-06-05
  • 打赏
  • 举报
回复
异步执行
jennydin 2007-06-05
  • 打赏
  • 举报
回复
ajax为什么不能用.

不是最简单,最快速的方法。
stonepeter 2007-06-05
  • 打赏
  • 举报
回复
改成异步调用default.aspx加上Async="true"
<%@ Page Language="C#" CodeFile="~/Default.aspx.cs" Inherits="_Default" Async="true"%>
default.aspx.cs中
AsyncCallback cb = new AsyncCallback(OnProvisionEnd); //Async Callback delegate
IAsyncResult ir = mWS.BeginProvisionSubscriber2(username, password, techUsername, techPassword, deviceId, cb, null);
lbID.Text = ir.ToString();
---通过跟踪调试发现OnProvisionEnd被正常调用了,可是调用并没有正常更新.
private void OnProvisionEnd(IAsyncResult ar)
{
lbID.Text = "111";
页面上并不会显示"111"的字样。

yin007 2007-06-05
  • 打赏
  • 举报
回复
路过!纯粹路过!专门路过
stonepeter 2007-06-04
  • 打赏
  • 举报
回复
ajax...怎么又是这个答案:(
有没有其他的做法....
cat_hsfz 2007-06-04
  • 打赏
  • 举报
回复
两种方法复合起来用,既AJAX又不难做到。
din1001 2007-06-04
  • 打赏
  • 举报
回复
ASP.net ajax 不能用??
stou 2007-06-04
  • 打赏
  • 举报
回复
UP
din1001 2007-06-04
  • 打赏
  • 举报
回复
要想当前页面不刷新且异步的话ajax吧.....ckpckphaha(赫尔墨斯神杖)的方法可行
stonepeter 2007-06-04
  • 打赏
  • 举报
回复
看来是得要一个新的页面了?iframe也要一个新的页面。。。。
难道这就是传说中的无解?
1)Javascrip/Ajax不能用
2)新建另一个页面看起来可以用
........
shixiangwen 2007-06-04
  • 打赏
  • 举报
回复
用 一个 隐藏的iframe 也应该是可以的,本页面的 from target属性=“iframe的名字”,这样提交的时候就会由这个iframe来执行,本页就避免了刷新
stonepeter 2007-06-04
  • 打赏
  • 举报
回复
din1001的做法是要新建一个页面。。。
能不能用异步调用webservice的方法来做?
din1001 2007-06-04
  • 打赏
  • 举报
回复
大概的思路:1、把buttonConfirm_Click事件里的处理拿到Page_Load事件中做,处理之前lbID.Text = "Please waiting..."
2、点Button以后提交给另一个页面A处理,A页面上“Please waiting...”后台作相应处理,完成后跳到指定页面或跳回
ckpckphaha 2007-06-04
  • 打赏
  • 举报
回复
用ajax的upagrateprogress 控件
stonepeter 2007-06-04
  • 打赏
  • 举报
回复
不能用Javascript....能用我早就用了。嘿嘿。
BearRui 2007-06-04
  • 打赏
  • 举报
回复
直接用AJAX调用webservice不是更好吗,调用前用JS显示"请等待...",数据读取完毕后显示结果

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧