Ajax-пейджинг, некорректное поведение после обновления страницы - PullRequest
0 голосов
/ 12 января 2012

У меня есть таблица с пейджингом ajax, я могу выбрать любую страницу и просмотреть данные, но если я нажму кнопку «Обновить» в моем браузере, она покажет страницу номер один.Как я могу остаться на той же странице таблицы после обновления?

Вот часть кода.

@using (Ajax.BeginForm(new AjaxOptions() { UpdateTargetId = "users_rows", Url = Url.Action("UsersRows") }))
    {
        <table>
            <thead>
            <tr>
                <th>@Resources.Id</th>
                <th>@Resources.Login</th>
                <th>@Resources.Password</th>
                <th>@Resources.FirstName</th>
                <th>@Resources.LastName</th>
                <th>@Resources.Birthday</th>
                <th>@Resources.IsActive</th>
                <th>@Resources.Role</th>
                <th>@Resources.RegistrationDate</th>
            </tr>
            </thead>
            <tbody id="users_rows">
                @Html.Partial("UsersRows", Model)
            </tbody>
        </table>
    }
    @Html.Partial("Pager", Model)

Pager.cshtml:

@model UserManagmentStudio.Domain.IPager

@if (Model.PageCount > 1)
{
    for (Int32 i = 1; i <= Model.PageCount; i++)
    {
        @Ajax.ActionLink(i.ToString(), "Index", new {page = i},
            new AjaxOptions()
           {
               UpdateTargetId = "users_rows",
               Url = Url.Action("UsersRows", new { page = i }),
           }
        )
        @:&nbsp
    }

}

Ответы [ 2 ]

0 голосов
/ 12 января 2012

Когда вы обновляете это возвращается к вашему поведению по умолчанию.Вы можете сохранить страницу текущего пользователя в файле cookie, а затем передать ее в качестве параметра на ваш пейджер.Вам придется хранить cookie для каждой уникальной страницы, которую посещает пользователь - она ​​не включает страницы пейджера, поскольку она одна и та же.Хорошо, что вам не нужно хранить куки после того, как пользователь уйдет.

Кроме этого, нет способа сделать это.

0 голосов
/ 12 января 2012

Нет способа достичь этого, потому что вы используете AJAX для своей нумерации страниц и, следовательно, никогда не перезагружаете текущую страницу.Если вы удалите вызов AJAX и выполните полный постбэк для своей нумерации страниц, URL-адрес браузера будет обновлен, и если пользователь нажмет <kbd>F5</kbd>, он не потеряет отслеживание текущей страницы, поскольку она будет частью строки запроса.

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