2012-06-27 52 views
1

在這裏,我需要先調用一個javascript函數,並在一段時間後,我需要在同一個按鈕單擊事件上調用c#函數。可能嗎?如何在buttonclick中設置事件的優先級?

<asp:ImageButton ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0" 
OnClientClick="JavaScript:exportCharts('JPG');" OnClick="imgBTNExportPPT_Click" ImageUrl="~/Images/PPT_icon.png" /> 

有什麼建議嗎?

+0

在您的代碼中,JavaScript函數將首先執行。 – adatapost

+0

那麼在目前的情況下會發生什麼?目前的不足是什麼? – V4Vendetta

+0

javascript在c#代碼之前執行,但它等待完全執行,直到我點擊彈出窗口中出現的任何東西,我的c#代碼 – nitinvertigo

回答

1

如果通過「一段時間後,」你的意思是像「在3秒後的最終將此行動必須要執行的」,那麼你可以使用setTimeoutsetTimeout(functionToCallAfterIntervalToWait, intervalToWait)

如果你想給你打電話可以使用內部functionToCallAfterIntervalToWait的Ajax調用服務器端方法 - 發表評論,如果你需要使用Ajax調用幫助

有關如何從JavaScript調用您的asp.net服務器方法參見this博文的例子(谷歌從JavaScript調用ASP .NET服務器的方法有更多的例子/教程)

假設你正在使用jQuery你會寫(使用.ajax()):

$.ajax({ 
url:"yourAspxPage/NameofTheMethodToCall", 
data: {"nameOfParameter": valueOfParameter}, 
success: function (data) { 
//this function will be called after the server side function executes successfuly 
}); 

如果你想,這個函數調用其他客戶端操作後作出確保下面寫(後)其他命令。

+0

我不明白你的場景 - 你有你的JavaScript代碼,你用來啓動一個動作服務器端(這可能是ajax或PageMethods(它仍然是ajax)if asp.net) - 現在在服務器上做一些工作,然後返回....在ajax/PageMethods上,你可以指定一個「onSuccessCallbackFunction」,它允許你處理從服務器端函數返回的數據。你的挑戰究竟是什麼? – Ando

+0

新來asp.net ..如何調用該方法使用ajax調用..任何示例 – nitinvertigo

+0

如何在客戶端處理完成後才執行服務器端處理 – nitinvertigo

1

爲什麼不通過調用Ajax調用服務器端的方法

你可以在你的JavaScript方法

+0

新的asp.net ..如何調用該方法使用ajax call..any示例 – nitinvertigo

+0

如何在客戶端處理完成後執行服務器端處理 – nitinvertigo

2

Javascript函數在客戶端執行。 C#函數在服務器端執行。如果沒有進一步的臨時化或異步請求,客戶端onClick處理函數將在服務器端onClick處理函數之前執行。

如果我找到你,想要導出的圖像在客戶端處理後可用,不是嗎?因此,只有在客戶端處理完成後才執行服務器端處理。

沒有AJAX?看看here

下面是一些代碼:

<script> 
    function exportCharts(input) 
    { 
    //business here 
    if(business works) 
     return true; 
    else 
     return false; 
    } 

</script> 

    <asp:ImageButton ID="imgBTNExportPPT" runat="server" Width="15" Height="15" border="0" ImageUrl="~/Images/PPT_icon.png" 
    OnClientClick="return exportCharts('JPG');" 
    OnClick="imgBTNExportPPT_Click" /> 

服務器端imgBTNExportPPT_Click處理器將只有exportCharts返回true執行。

+0

是完美..如何在客戶端處理完成後才執行服務器端處理 – nitinvertigo

+0

我的答案中的更多詳細信息 –