Знаете хороший индикатор загрузки страницы для моего приложения ASP.net? - PullRequest
3 голосов
/ 21 октября 2008

Просто интересно, видел ли кто-нибудь полезный индикатор прогресса для приложений на C # .net. Загрузка моего приложения занимает около 20-60 секунд, и я хотел бы показать пользователям индикатор выполнения, пока они ждут. Я видел этот , но образец сайта, похоже, не работает, что не внушает доверия.

Ответы [ 3 ]

4 голосов
/ 22 октября 2008

Вы можете использовать AJAX UpdateProgress .

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdateProgress runat="server" id="PageUpdateProgress">
        <ProgressTemplate>
            Loading...
        </ProgressTemplate>
    </asp:UpdateProgress>
    <asp:UpdatePanel runat="server" id="Panel">
        <ContentTemplate>
            <asp:Button runat="server" id="UpdateButton" onclick="UpdateButton_Click" text="Update" />
        </ContentTemplate>
    </asp:UpdatePanel>

Если вам нужна анимация, все, что вам нужно сделать, это вставить анимированный GIF-файл в 'ProgressTemplate'.

1 голос
/ 14 сентября 2012

На странице aspx вам нужно написать это, я добавил определенный класс CSS, который вы сами должны определить, с точки зрения функциональности этот код поможет вам

<asp:Panel ID="ProgressIndicatorPanel" runat="server" Style="display: none" CssClass="modalPopup">
        <div id="ProgressDiv" class="progressStyle">
            <ul class="ProgressStyleTable" style="list-style:none;height:60px">
                <li style="position:static;float:left;margin-top:0.5em;margin-left:0.5em">
                    <asp:Image ID="ProgressImage" runat="server" SkinID="ProgressImage" />
                </li>
                <li style="position:static;float:left;margin-top:0.5em;margin-left:0.5em;margin-right:0.5em">
                    <span id="ProgressTextTableCell"> Loading, please wait... </span>
                </li>
            </ul>
        </div>
    </asp:Panel>

Определите функцию, скажем, ProgressIndicator следующим образом

var ProgressIndicator = function (progPrefix) {
    var divId = 'ProgressDiv';
    var textId = 'ProgressTextTableCell';
    var progressCss = "progressStyle";

    if (progPrefix != null) {
        divId = progPrefix + divId;
        textId = progPrefix + textId;
    }

    this.Start = function (textString) {
        if (textString) {
            $('#' + textId).text(textString);
        }
        else {
            $('#' + textId).text('Loading, please wait...');
        }
        this.Center();
        //$('#' + divId).show();
        var modalPopupBehavior = $find('ProgressModalPopupBehaviour');
        if (modalPopupBehavior != null) modalPopupBehavior.show();
    }

    this.Center = function () {
        var viewportWidth = jQuery(window).width();
        var viewportHeight = jQuery(window).height();
        var progressDiv = $("#" + divId);
        var elWidth = progressDiv.width();
        var elHeight = progressDiv.height();
        progressDiv.css({ top: ((viewportHeight / 2) - (elHeight / 2)) + $(window).scrollTop(),
            left: ((viewportWidth / 2) - (elWidth / 2)) + $(window).scrollLeft(), visibility: 'visible'
        });
    }

    this.Stop = function () {
        //$("#" + divId).hide();
        var modalPopupBehavior = $find('ProgressModalPopupBehaviour');
        if (modalPopupBehavior != null) modalPopupBehavior.hide();
    }
};

Данный пример содержит Индикатор прогресса с Модальным, то есть, когда индикатор прогресса работает, он отключает другие операции, которые должны выполняться на экране. Вы можете удалить Модальную часть, если она вам не нужна.

1 голос
/ 21 октября 2008

Я бы посмотрел этот пост в блоге - кажется, хороший способ сделать это. Я не проверял это сам ...

http://mattberseth.com/blog/2008/05/aspnet_ajax_progress_bar_contr.html

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