Как функционально добавить пейджинг в DevExpress GridView с помощью элементов управления страницей - PullRequest
0 голосов
/ 28 мая 2019

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

Новый DevExpress GridView основан на представлении, которое не использует DevExpress.Эта страница будет списком корпоративного каталога, поэтому в нем есть такие столбцы, как имя, телефон и местоположение.Представление создано и отображается с элементами управления подкачкой.Я немного осмотрел форумы DevExpress на предмет похожих проблем, но все они используют .aspx, и я использую .cshtml для своего GridView.

public ActionResult DevExpressView()
{
   return View(EmployeeList);
}
@Html.DevExpress().GetStyleSheets(new StyleSheet { ExtensionSuite = ExtensionSuite.GridView})

@Html.DevExpress().GridView(
    settings =>
    {
        settings.Name = "GridView";
        settings.CallbackRouteValues = new { Controller = "DevExpessController", Action = "DevExpressView" };

        settings.KeyFieldName = "Clock";
        settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
        settings.SettingsPager.PageSize = 32;
        settings.Settings.VerticalScrollBarMode = ScrollBarMode.Visible;
        settings.Settings.VerticalScrollableHeight = 350;
        settings.ControlStyle.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(0);
        settings.ControlStyle.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0);
        settings.ControlStyle.BorderBottom.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1);


        settings.Columns.Add("FirstName");
        settings.Columns.Add("LastName");
        settings.Columns.Add("Department");
        settings.Columns.Add("Title");
        settings.Columns.Add("PlantNO");
        settings.Columns.Add("Telephone");
        settings.Columns.Add("Mobile");
        settings.Columns.Add("Pager");

    }).Bind(Model).GetHtml()

Есть элементы управления нанижняя часть GridView для обработки нумерации страниц, но ничего не происходит при нажатии на них.Я хотел бы, чтобы эти элементы управления изменили отображаемую страницу сотрудников.Извините, если мой вопрос не имеет смысла, я новичок в DevExpress.

1 Ответ

1 голос
/ 29 мая 2019

Недостаточно одного действия контроллера для серверных элементов управления DevExpress.Вам нужно 2 действия контроллера, 1 просмотр и 1 PartialView, чтобы это работало.Также убедитесь, что загружены сценарии для GridView (см. Ниже).

Клиент переходит к:

public ActionResult DevExpressView()
{
    IQueryable<Employee> model = GetYourDataFromSomewhere();
    return View("EmployeeList", model);
}

EmployeeList.cshtml (View)

@model IEnumerable
@Html.DevExpress().GetScripts(new Script { ExtensionSuite = ExtensionSuite.GridView })
@Html.DevExpress().GetStyleSheets(new StyleSheet { ExtensionSuite = ExtensionSuite.GridView})

@Html.Partial("GridView", Model)

GridView.cshtml (частичное представление)

Внимание! Это представление должно содержать только сетку.Ничего другого!

@Html.DevExpress().GridView(
settings =>
{
    settings.Name = "GridView";
    settings.CallbackRouteValues = new { Controller = "DevExpessController", Action = "DevExpressViewPartial" };

    settings.KeyFieldName = "Clock";
    settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
    settings.SettingsPager.PageSize = 32;
    settings.Settings.VerticalScrollBarMode = ScrollBarMode.Visible;
    settings.Settings.VerticalScrollableHeight = 350;
    settings.ControlStyle.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(0);
    settings.ControlStyle.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0);
    settings.ControlStyle.BorderBottom.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1);


    settings.Columns.Add("FirstName");
    settings.Columns.Add("LastName");
    settings.Columns.Add("Department");
    settings.Columns.Add("Title");
    settings.Columns.Add("PlantNO");
    settings.Columns.Add("Telephone");
    settings.Columns.Add("Mobile");
    settings.Columns.Add("Pager");

}).Bind(Model).GetHtml()

Действие обратного вызова для сетки:

public ActionResult DevExpressViewPartial()
{
    IQueryable<Employee> model = GetYourDataFromSomewhere();
    return PartialView("GridView", model);
}

Посмотрите на их демо .Если вы копируете этот код (за исключением, конечно, NorthwindDataProvider), у вас должен быть рабочий образец.

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