Я бы предложил AJAX.
Нажатие кнопки приведет к обратной передаче браузера. С этого момента нет ничего действительно, чтобы «заставить» браузер (на стороне клиента) сделать другую обратную передачу, если пользователь «что-то не делает»
Используя ajax, вы можете выполнять асинхронный вызов, который будет отвечать после его завершения.
Есть несколько способов сделать это, но я лично использую jquery.
вот пример возможного вызова ajax с использованием jquery:
$.ajax({
url: "../ajax/backgroundworker.ashx",
data: 'element=' + $(this).parent().siblings('.datarow').children('.dataelement').text(),
dataType: "text",
success: function(data) {
var taData = data.split("|");
if (taData[0] != "-1") {
$(".dataelement:contains('" + taData[0] + "')").parent().siblings().children('.displayfield').text(taData[1]);
$(".dataelement:contains('" + taData[0] + "')").parent().siblings().children('.img_throbber').css('visibility', 'hidden');
}
else {
alert("There is currently a problem accessing the background service that is responsible for data processing.");
$('.do_work_button').css("visibility", "hidden");
$(".dataelement").parent().siblings().children('.dataelement').text("N/A");
$(".dataelement").parent().siblings().children('.img_throbber').css('visibility', 'hidden');
}
},
error: function(xhr, status, error) {
displayAjaxError(xhr);
$(".dataelement").parent().siblings().children('.img_throbber').css('visibility', 'hidden');
}
команда $ .ajax вызывается с событием click на вашей странице. и .ashx (файл веб-обработчика asp.net) является своего рода средством, которое вы можете использовать для передачи данных со своей клиентской стороны на серверную. Вы можете ссылаться на объекты и код на стороне сервера в .ashx, которые используют данные из ajax-вызова на стороне клиента для возврата результатов через контекст http.