我花了相當一段時間試圖破解爲什麼它並不總是火!答案如下: 您需要一個圍繞被調用請求的更新面板。因此,如果您有一個需要調用begin和end請求處理程序的按鈕,則可以在按鈕周圍放置一個Ajax更新面板,並將「UpdateMode」設置爲「Always」。這是因爲這些javascript事件只在asynchronos回發之前和之後觸發。 Ajax更新面板將提供asynchronos調用。
例子:
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
//Some code
}
function EndRequestHandler(sender, args) {
//Some code
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel runat="server" ID="UpdatePanel6" UpdateMode="Always">
<ContentTemplate>
<asp:Button runat="server" ID="btnGo" Text="Go" OnClick="btnGo_OnClick"/>
</ContentTemplate>
</asp:UpdatePanel>
請注意,這是在asp.net正確的方法論。我不太瞭解MVC。希望有所幫助。
init代碼是否實際運行? – CodingBarfield 2011-02-28 12:50:59