尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
界面组件Telerik ASP.NET MVC使用指南 - 如何自定义网格过滤(一)
Telerik ASP.NET MVC拥有使用JavaScript和HTML5构建网站和移动应用所需的70UI部件来满足开发者的各种需求提供无语伦比的开发性能和用户体验。它主要是针对专业级的 ASP.NET开发通过该产品的强大功能开发者可以开发出功能丰富、适应标准广泛的响应式应用程序。对于任何长度的网格如果用户没有能力将条目过滤到他们真正感兴趣的条目那么开发的页面体验就会很差只有在让用户找到他们需要的项目才能体现开发的应用的价值。更具体地说虽然提供了用户可能需要的每个过滤选项但默认设置并不关注用户在这个UI中需要什么。Telerik ASP.NET MVC的网格组件提供了创建专注于用户实际需求的过滤体验所需的所有选项。下面是添加到应用程序默认索引中的网格标记例如cshtml Razor Page(它几乎MVC视图中使用的内容相同)kendo-grid nameproducts datasource nameproductsDS typeDataSourceTagHelperType.Ajax transport read urlUrl.Page(/Index,Read) datadataFunction / /transport schema model fields field nameTotalQuantity typenumber/field field nameLastDelivery typedate/field field nameInStock typeboolean/field /fields /model /schema /datasource columns column fieldProductId titleId width100 / column fieldProductName titleName width240/ column fieldLastDelivery format{0:MMM-dd} titleLast Delivery width150 / column fieldInStock titleIn Stock width150 / column fieldTotalQuantity titleQuantity on Hand width150 / /columns filterable enabledtrue moderow / /kendo-grid从过滤的角度来看标记中有趣的元素是最后一个可过滤元素它通过将Grid的过滤模式设置为“row”将所有列的过滤菜单配置为用户更友好的内容。虽然可过滤元素是自定义网格Grid过滤功能的第一步但在自定义网格Grid过滤功能时网格Grid标记中的其他部分也很重要。数据源传输元素中的read元素指定将Grid下载到浏览器后从哪里获取数据传输元素还支持更新/删除/插入请求因此它的所有调用都作为POST请求发送到数据源。这也是反映Grid在Razor Page上的唯一区域将读取选项设置为指向Razor Page中处理程序方法的URL使用 Url. Page只需要传递页面名称和处理程序名称。模式该元素允许开发者为网格列出的复杂对象属性指定数据类型在本文示例中是Product对象默认情况下所有对象的属性都假定为字符串类型所以开发者只需要为那些不是字符串的属性提供类型TotalQuantity(一个数字)LastDelivery(一个日期)和InStock(一个布尔值)。列该元素定义Grid中的列指定要显示对象上的属性和一些附加选项例如列的标题、数据的格式字符串等。当网格显示一个对象时筛选是围绕Grid的列组织的。代码为了记录这里是页面代码隐藏文件中的c#代码。当页面第一次被请求时OnGet方法被自动调用并加载一个名为ps的Product对象集合。在浏览器中显示网格时调用OnPostRead方法使用在网格的传输部分中设置的URL。由于Grid的调用总是POST请求并且将处理程序名称指定为“Read”所以方法必须调用OnPostRead。这个例子返回将ps List转换成网格可以使用的JSON结果public class IndexModel : PageModel { public static IListProduct ps; public async void OnGet() { if ( ps null) { ProductRepo pr new ProductRepo(); ps await pr.GetAllAsync(); } } public JsonResult OnPostRead([DataSourceRequest] DataSourceRequest request) { return new JsonResult(ps.ToDataSourceResult(request)); } }可以设置网格来调用任何想要的Web服务开发者更偏爱Razor Pages将所有内容捆绑到一个包中的方式也可以很容易地使用实体框架上下文和表来构建网格的对象列表。
RELATED

相关推荐

从一次改版崩溃到一周未维护:我用Scrapling爬虫框架重建数据管线的真实经历

从一次改版崩溃到一周未维护:我用Scrapling爬虫框架重建数据管线的真实经历

从一次改版崩溃到一周未维护:我用Scrapling爬虫框架重建数据管线的真实经历 【免费下载链接】Scrapling 🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! 项目地址: https://gitcode.…

📅 2026/9/5 22:13:33
Mate Engine 完全指南:手把手搭起你的免费VRM桌面虚拟伴侣

Mate Engine 完全指南:手把手搭起你的免费VRM桌面虚拟伴侣

Mate Engine 完全指南:手把手搭起你的免费VRM桌面虚拟伴侣 【免费下载链接】Mate-Engine A free Desktop Mate alternative with a lightweight interface and custom VRM support, though with more features. 项目地址: https://gitcode.com/gh_mirrors/ma/Mate…

📅 2026/9/10 3:08:51
node,koa2实现nginx服务器代理功能

node,koa2实现nginx服务器代理功能

文章目录vue项目打包,api设置为替换api一、vue项目打包,api设置为替换api那么调用接口的时候默认是本地调用,这个时候部署到node上的项目会自己调用自己的资源,那么是调用不到的二、使用koa2的koa2-proxy-middleware功能进行代理操作一定不要使用koa-bodyparser,那么请求转发只…

📅 2026/8/23 16:13:29
MORE NEWS

更多资讯

📰

半透半反TFT户外显示失效真相与高亮光学替代方案

1. 半透半反TFT在户外显示场景中被高估的真相“户外屏用半透半反TFT,阳光下才看得清”——这句话我听过的次数,比调试SPI时数错的CS引脚还多。它像一句行业黑话,被写进招标文件、嵌入方案PPT、印在产品手册首页,甚至成为某些FAE向…

📰

自有制造兜底能效:蓝牙模块量产级功耗优化实战

1. 项目概述:为什么“自有制造兜底能效”不是一句口号,而是产线级生存逻辑你拆过蓝牙模块的PCB吗?不是那种贴片即用的成品模组,而是从晶振焊盘、天线馈点、电源走线开始看起的底层板子。我经手过不下三十款市面主流蓝牙SoC——从某…

📰

Python列表推导式、生成器与迭代器:核心区别与选型指南

1. 为什么这三个东西总被放在一起讲刚学Python那会儿,我看到“列表推导式、生成器、迭代器”这三个词排在一起就头疼。教材喜欢把它们塞进同一章,好像它们天生就该在一起,但真到写代码的时候,我又分不清什么时候该用哪个。后来写得…

📰

手写C++单链表:内存布局、资源生命周期与生产级实现

1. 为什么今天还要手写单链表?——不是为了造轮子,而是为了看清内存的呼吸节奏“C 单链表的实现”这个标题看起来像教科书里的课后习题,甚至有些过时。毕竟STL里一个std::list就能开箱即用,连迭代器都配齐了,谁还费劲去…

📰

Landsat 8辐射定标实战:GEE中OLI与TIRS定标全流程解析

1. 辐射定标这件事,到底在定什么Landsat 8 的 Level-1 数据产品,不管是 Collection 1 还是现在的 Collection 2,打开之后你会发现它的像元值(DN值)是一个 0 到 65535 之间的整数。这个数字本身没有物理意义&#xff0c…

📰

open-code-review:把代码评审从形式主义变成团队知识沉淀

我特别想聊聊“open-code-review”这个项目。先别急着把它理解成一个高大上的框架或者什么前沿平台,它本质上就是围绕代码评审(Code Review)这件事,把流程、规范、工具、度量全部“打开”的一套实践组合。做了这么多年开发和团队协…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬