Слушайте события: в HTML из .NET - PullRequest
1 голос
/ 05 февраля 2009

Предположим, что в HTML с помощью UpdatePanel у меня запущен анимированный GIF-файл загрузки, а ASP.NET обрабатывает данные из веб-службы.

Мне просто интересно, есть ли способ реализовать событие в .NET-коде, которое можно прослушивать из кода HTML, например:

Я запрашиваю данные Persons из WebService, один за другим, и я хотел, чтобы загрузка текста на стороне HTML показала.

Importing person 1
Importing Person 2
Importing Person 3
All Done!

и

Есть какой-нибудь трюк, чтобы сделать это?

сейчас у меня есть это в моем HTML-коде

ГОЛОВА часть

<script type="text/JavaScript" language="JavaScript">

    function pageLoad() {

        try {
            var manager = Sys.WebForms.PageRequestManager.getInstance();
            manager.add_endRequest(endRequest);
            manager.add_beginRequest(OnBeginRequest);
            manager
        }
        catch (err) {
        }
    }

    function OnBeginRequest(sender, args) {

        $("#loadingText").html("<img src='_assets/img/animated/parweb_loading.gif' alt='' />&nbsp;" + strLoadingText);
    }

    function endRequest(sender, args) {
    }  

</script>

ТЕЛО запчасти имеет:

<asp:UpdateProgress AssociatedUpdatePanelID="pnlAllIn" runat="server" ID="pnlUpdating">
    <ProgressTemplate>
        <div id="loadingText" style="background-color: Red; position: absolute; width: 200px;
            top: 0px; right: 20px; padding: 5px; color: White; text-align: center; vertical-align: middle;
            font-size: 14px;">
        </div>
    </ProgressTemplate>
</asp:UpdateProgress>

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 05 февраля 2009

Microsoft AJAX.NET - это верхний уровень управления, поэтому он прост в использовании, но вы немного ограничены.

С библиотекой Майкла Шварца AJAX.NET вы можете сделать это следующим образом:

  1. Напишите метод для импорта информации. Этот метод записывает журнал в сеанс или куда-либо еще.

  2. Напишите второй метод для проверки этого журнала и распечатайте, пока операция продолжается.

0 голосов
/ 05 февраля 2009

Не могли бы вы использовать AJAX для этого. Запустите ваш запрос веб-службы в отдельном потоке. Поток должен хранить экземпляр переменной (или ссылку на нее), которая отслеживает прогресс от веб-службы. Затем JavaScript может звонить каждые 2 секунды, чтобы получить статус, и затем соответствующим образом обновлять ваш HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...