我的Asp.net 3.5 Visual Studio 2008 Web應用程序有一個Web頁面(Admin.aspx),它帶有一個運行冗長過程(30秒+)的按鈕事件,然後觸發UpdatePanel1.Update( )刷新頁面..導致無效操作異常。UpdatePanel Update()會導致InvalidOperationException錯誤
Admin.aspx有一個母版
Admin.aspx(部分)在這裏:
<div id="Tabs">
<div class="cen2">
<asp:ScriptManager ID="ScriptManager1" AsyncPostBackTimeOut="360000" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="False" runat="server"
UpdateMode="Conditional" >
<ContentTemplate>
cont....... >
Admin.aspx.cs這裏(部分),這是由一個代表事件被解僱。
private void port_trdRes(object sender, DataTable dt)
{
dlResSum.DataSource = dt;
dlResSum.DataBind();
try
{
UpdatePanel1.Update();
}
catch (Exception webex)
{
SendErr("Admin.aspx PortTrd Res Exception " + webex.Message.ToString());
}
simtrd.port.trdRes -= new Steury.Trading.TrdSummDelegate(port_trdRes);
}
當我到UpdatePanel1.Update()
它總是給我一個
錯誤:
'System.InvalidOperationException' 類型 的第一次機會異常出現在System.Web.Extensions程序.dll
嘗試catch向我發送此消息..「異常的更新方法只能在所謂的UpdatePanel與ID UpdatePanel1之前渲染」 ...但還是不更新。 – CraigJSte 2012-04-28 14:00:08
@CraigJSte根據您的評論更新了帖子。看起來好像在updatepanel中的控件在由部分回發創建之前正試圖由服務器調用。將ChildrenAsTriggers設置爲false可能會更正此問題。 – rlcrews 2012-04-28 14:45:43
在爲ChildrenTriggers修改後的代碼仍然會引發此問題(請參見上文)..... Admin.aspx PortTrd Res異常Update方法只能在渲染前使用ID爲UpdatePanel1的UpdatePanel上調用。 – CraigJSte 2012-04-28 17:13:09