c# - 如何使用页面控件将分页功能添加到 DevExpress GridView
问题描述
我正在创建一个带有分页的新 DevExpress GridView,但是当点击其他页面的链接时,它们不会做任何事情。我需要添加这个功能,但我不知道从哪里开始。
新的 DevExpress GridView 基于不使用 DevExpress 的视图。此页面将是公司目录的列表,因此它具有名称、电话和位置等列。视图已创建并显示分页控件。我在 DevExpress 论坛上搜索了一些类似的问题,但这些都使用 .aspx 并且我在 GridView 中使用 .cshtml。
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 的新手。
解决方案
DevExpress 服务器端控件只有一个控制器动作是不够的。您需要 2 个控制器操作、1 个视图和 1 个 PartialView 才能工作。还要确保为 GridView 加载脚本(见下文)。
客户端导航到:
public ActionResult DevExpressView()
{
IQueryable<Employee> model = GetYourDataFromSomewhere();
return View("EmployeeList", model);
}
EmployeeList.cshtml(查看)
@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 除外),您应该有一个工作示例。
推荐阅读
- sql - 确定学生是否有资格参加具有先决条件的课程的存储过程
- javascript - WebAssembly for AudioWorklet 的优势
- windbg - UMDH/Windbg 不兼容 DMP 文件?
- java - 无法使用 Selenium (Java) 使用 sikuli 定位图像
- excel - 每周报告的完整vlookup
- jquery - 页面加载时引导 4 模态播放 iframe?
- python - Keras - 嵌入层和 GRU 层形状错误
- javascript - 如何在 Javascript 中将对象数组转换为关联数组对象
- python - 我可以在@app.before_request 中将值附加到我的烧瓶请求对象并将其转发给端点视图函数吗?
- node.js - Azure 存储 - 使用 Node.js 复制包含所有内容的容器