2012-06-27 4 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#, но он ждет выполнения полностью, пока я не нажму ничего на всплывающем окне, которое появляется bcoz моего кода C# – nitinvertigo

ответ

1

Если по «через некоторое время» вы имеете в виду что-то вроде «через 3 секунды действие должно быть выполнено», то вы можете использовать setTimeoutsetTimeout(functionToCallAfterIntervalToWait, intervalToWait)

Если вы хотите, чтобы вызвать метод на стороне сервера, вы можете использовать вызов Ajax внутри functionToCallAfterIntervalToWait - оставьте комментарий, если вам нужна помощь с вызовом АЯКС

Для примера о том, как назвать свой метод сервера asp.net из JavaScript см this BlogPost (Google называют ASP .NET метод сервера из JavaScript для более примеры/учебники)

Предполагая, что вы используете 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), если asp.net) - теперь на сервере вы выполняете какую-то работу, а затем возвращаете ... На обоих параметрах ajax/PageMethods вы можете указать «onSuccessCallbackFunction», которая позволит вам обрабатывать данные, возвращаемые с помощью функции на стороне сервера. Какова ваша задача? – Ando

+0

Я новичок в asp.net .. как позвонить этому методу, используя вызов ajax ..любой пример – nitinvertigo

+0

, как выполнить обработку на стороне сервера только после завершения обработки клиентской стороны – nitinvertigo

1

Почему бы не вызвать метод на стороне сервера с помощью вызова Ajax

Вы можете поместить это в конце вашего метода JavaScript

+0

Я новичок в asp.net .. как позвонить этому методу, используя вызов ajax..ано пример – 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 возвращает истину.

+0

Да, отлично .. как выполнить обработку на стороне сервера только после завершения обработки клиентской стороны – nitinvertigo

+0

Более подробная информация в моем ответе –

Смежные вопросы