Member 12958722 Ответов: 1

Индикатор выполнения при вызове из метода контроллера никуда не денется.


Привет,

Я вызываю метод контроллера из удивительной сетки, как указано ниже.

@(Html.Awe().Grid(documentGridId)
       // .Mod(o => o.Custom("gridLoading1").ColumnsSelector())
        .Url(Url.Action("GridGetItems", "Document"))
        .Parameter("DocumentFolder", Model.Item1)
        .Parameter("DocumentParent", Model.Item2)
        .Parent("connID", "p1")
        .Resizable(true)
        .Height(200)
        .ColumnWidth(120)
        .PageSize(25)
        .Groupable(false)
        .Columns(
            columns.ToArray()
        )
)

И в методе контроллера я вызвал функции.SendProgress (), чтобы получить индикатор выполнения. Однажды проявив себя, она никуда не денется. То, что должно быть вызвано из контроллера, чтобы индикатор выполнения исчез после 100% завершения.
 public ActionResult GridGetItems(GridParams g, string parent, string DocumentFolder, string p1, string DocumentParent, bool? restore)
        {
Functions.SendProgress("Loading Files", 10, 100, p1);

//Method code continues

Functions.SendProgress("Loading Files", 100, 100, p1);

   return Json(model);
        }

Пожалуйста, дайте мне знать. Помощь нужна срочно :(.

Что я уже пробовал:

Попробовал позвонить
function ProgressBarModal(showHide) {
    debugger;
    if (showHide === 'show') {
        $('#mod-progress').modal('show');
        if (arguments.length >= 2) {
            $('#progressBarParagraph').text(arguments[1]);
        } 

        window.progressBarActive = true;

    } else {
        $('#mod-progress').modal('hide');
        window.progressBarActive = false;
    }
}

после того, как сетка будет загружена. Но это не правильный путь, так как у нас нет никакого способа определить, загружена ли сетка или нет.

Я должен вызвать какой-то метод из самого метода контроллера, чтобы скрыть индикатор выполнения. Пожалуйста помочь.

1 Ответов

Рейтинг:
7

sachin.vishwa90

Если я не ошибаюсь, то вы должны использовать эта сетка.
эта сетка имеет свойство событий. таким образом, вы можете запустить свой собственный javascript, когда происходит событие.
Вы можете использовать

.on('item:stacked', [function])
событие для увеличения счетчика прогресса, а также
.on('grid:done', [function])
чтобы закончить процесс завершения.
Надеюсь, это поможет.

нет необходимости писать какой-либо код на контроллере для отображения загрузки.
а для демонстрации загрузчика я бы рекомендовал вам пойти на Пресс


Member 12958722

Я не могу изменить удивительные скрипты сетки, так как мы использовали это во всем приложении. У вас есть какие-нибудь идеи, как включить код Javascript в метод контроллера C#?

Итак, если я включу эти строки
$('#мод-прогресс').модальные('спрятать');
окна.progressBarActive = ложь;

Прогресс-бар пропадает.

sachin.vishwa90

вам не нужно менять сценарий awesome grid, на самом деле вы должны использовать функциональность, предоставленную awesome grid. это изменение будет касаться только вида. вы никогда не сможете показать прогресс от контроллера до тех пор, пока не нажмете действие контроллера снова и снова, чтобы обновить представление.

Member 12958722

хорошо, спасибо.