2011-12-07 31 views
0

BeginAsyncOperationから返されたページにエラーメッセージを表示するにはどうすればよいですか?ページはデータなしで正常にロードされますが、ユーザーは理由を知らないでしょうか?エラーがスローされたが、BeginAsyncOperationで処理されなかったことを確認しました。AddOnPreRenderCompleteAsync例外処理

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     AddOnPreRenderCompleteAsync(
      new BeginEventHandler(BeginAsyncOperation), 
      new EndEventHandler(EndAsyncOperation) 
     ); 
    } 
} 

private IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback callback, object state) 
{ 
    var t = new ThreadStart(GetData); 
    try 
    { 
     return t.BeginInvoke(callback, null); 
    } 
    catch (Exception ex) 
    { 
     this.lblError.Text = ex.Message; 
     this.pnlError.Visible = true; 
    } 
    return null; 
} 

private void EndAsyncOperation(IAsyncResult result) 
{ 
    BindData(); 
    SetControlStates(); 
} 

private void GetData() 
{ 
    try 
    { 
     throw new Exception("something broke!"); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

答えて

0

私はそれを考えていました。

private IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback callback, object state) 
{ 
    var t = new ThreadStart(GetData); 
    return t.BeginInvoke(callback, null); 
} 

private void GetData() 
{ 
    try 
    { 
     throw new Exception("something broke!"); 
    } 
    catch (Exception ex) 
    { 
     this.lblError.Text = ex.Message; 
     this.pnlError.Visible = true; 
    } 
}