Чтобы показать фактический прогресс, вам необходимо получить статус с сервера и обновить пользовательский интерфейс на стороне клиента. Одним из способов является использование HTTP-обработчиков и AJAX с jQuery.
1. Инициировать создание счета-фактуры
$("#btnCreateInvoice").click(function() {
$.ajax({ type: "POST", url: "YourHttpHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { UpdateStatus-Initialize some progressbar plugin }
});
});
2. Опрос
Что вам нужно сделать, это опросить сервер с интервалом 't' и получить статус. Для этого нам нужно вызывать функцию с интервалом 't', которая инициировала бы вызов AJAX HTTPHandler для получения статуса.
$(function() {
setInterval(update, 't');
});
function updateStatus() {
$.ajax({ type: "POST", url: "GetStatusHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { UpdateStatus - Update some progressbar plugin }
});
}
3. Управление статусом на стороне сервера
В вашем случае может возникнуть ситуация, когда может быть несколько активных счетов, поэтому вам потребуется обновлять / поддерживать статус всех этих записей при каждом запросе AJAX.
Также я не уверен, что вы можете использовать элементы управления индикатора выполнения на стороне сервера ASP.NET с этой техникой, поскольку вам нужно будет обновить их на стороне клиента.