我們用來實現類似事情的過程稍微複雜一點,但它確實有效。
我們創建了一個web服務,它有很多方法,例如;
[SoapDocumentMethod(OneWay = true), WebMethod]
public void StartUpdate(string reference)
[WebMethod]
public ProcessStatus GetProcessStatus(string reference)
對asynch webmethod的調用將啓動進程運行並傳遞參考編號以標識自身。這又調用的存儲過程,其使用上的光標的迭代的更新來更新與「參考」,「計數」和「狀態」的另一個表
的GetProcessStatus將隨後通過在該參考文獻並傳回當前計數和狀態。如果狀態已完成,我們可以繼續,或者,您可以使用此處的「計數」來更新狀態。這方面的一個例子;
protected void Page_Load(object sender, EventArgs e)
{
this.JavaScript.Text = string.Format("<script>setTimeout(\"{0}\", {1});</script>",
this.Page.GetPostBackClientEvent(this.btnRefresh, ""), 3000);
ProcessStatus status= Class.GetProcessStatus(reference);
lblCount.Text = status.Count.ToString();
if (import.Status == (int)ProcessStatus.Status.Complete)
{
Globals.GoUrl("/Import/File/Map.aspx");
}
}
希望有幫助。
當進展的一個步驟發生時,它是否被推送到asp.net?或定時器中的asp.net - 查詢值...? –
只需使用計時器在標準asp頁面上調用第二種方法,就可以在上面添加更新。 – ChrisBint
如果'StartUpdate'正在使用事務進行更新,'GetProcessStatus'將根本無法查詢第二個表。 – wqw