2011-06-12 41 views
0

我使用的ASP.NET站點彈性CSS框架。在UpdatePanel執行部分回發之前,它確定了我所擁有的各種容器的大小。據我所知的解決方案是執行JavaScript執行JavaScript的一個線對AJAX的異步事件在ASP.NET

Elastic.refresh(); 

的以下行,我用C#和ASP.NET不錯,但沒有那麼多的JavaScript。據我所知,RegisterStartupScript只註冊腳本,我仍然需要一個控制來執行它。

那麼,怎樣才能讓我的JavaScript的這一條線時自定義控件捕獲自定義異常,並導致部分回發到執行?

+0

我可能已經做了一個重複:http://stackoverflow.com/questions/338702/how-to-call-a-client-side-javascript-function-after-a-specific-updatepanel都具有一個-是 – 2011-06-12 01:56:21

回答

2

編輯

在您的網頁上的JavaScript你也可以嘗試這樣的事情

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler); 
function PageLoadHandler() 
{ 
    Elastic.refresh(); 
} 

該處理器將任何回調之後運行,但sender._postBackSettings.panelID可以讓你把它過濾到你想要的面板。

另外,如果結束請求更符合您的需求,您可以嘗試。

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
function PageLoadHandler() 
{ 
    Elastic.refresh(); 
} 

原始

你有有在UpdatePanel頁面上的ScriptManager控件?如果是這樣,你可能能夠利用ScriptManager.AsyncPostBackError並讓它執行你的方法。

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.asyncpostbackerror.aspx

+0

感謝您的建議,但我不知道究竟如何,將被使用。 – 2011-06-12 01:04:46

+0

當我讀到「當一個自定義的控制捕獲自定義異常,並導致部分」我還以爲你說的錯誤是在異步回發時拋出。現在我又看了一遍,我猜想事實並非如此。 :) – 2011-06-12 01:09:02

+0

正確。我有一個自定義控件引發了包含頁面捕獲的事件。該事件被註冊爲異步事件的觸發器。在該事件結束時,我需要運行一行JavaScript。 – 2011-06-12 01:13:43

1

這是一個猜測,但我會嘗試使用文字控制瓦特/包含以下阿賈克斯面板:

<script language="javascript"> 
Elastic.refresh(); 
</script> 

如果我是正確的阿賈克斯面板將重新加載,並自動將當它執行時執行該行代碼。

+0

想法不錯,但似乎並沒有工作,試圖把它在各級頁面和容器。 – 2011-06-12 00:57:38