Blazor中可复用DataGrid组件通过泛型+表达式树实现列配置、封装DataGridState管理分页排序、暴露RowClick/OnDataRequested等事件,并支持自定义模板、样式扩展与响应式适配。

Blazor 中创建可复用的 DataGrid 组件,核心是封装通用逻辑(分页、排序、列配置、行点击等),同时保持对业务数据和样式的完全开放。不需要第三方库,纯 Razor 组件 + C# 即可实现高内聚、低耦合的网格。
避免硬编码列名,用泛型 + 表达式树提取字段名和显示文本。定义一个 DataGridColumn<titem></titem> 类:
Field(Expression<func object>></func>)用于绑定与排序Title 字符串控制表头文字Width、Sortable、Visible 等开关属性RenderFragment<titem></titem> 替代默认单元格渲染这样使用者只需传入列集合,无需修改组件内部代码就能增删列或定制某列内容。
把 CurrentPage、PageSize、SortField、SortDirection 封装进一个 DataGridState<titem></titem> 类,并提供 ApplySorting 和 ApplyPaging 扩展方法处理 IQueryable<titem></titem> 或 IEnumerable<titem></titem>。
专为中小型企业定制的网络办公软件,富有竞争力的十大特性: 1、独创 web服务器、数据库和应用程序全部自动傻瓜安装,建立企业信息中枢 只需3分钟。 2、客户机无需安装专用软件,使用浏览器即可实现全球办公。 3、集成Internet邮件管理组件,提供web方式的远程邮件服务。 4、集成语音会议组件,节省长途话费开支。 5、集成手机短信组件,重要信息可直接发送到员工手机。 6、集成网络硬
0
@bind-CurrentPage 支持双向绑定,方便父组件响应页码变化StateHasChanged()
真正可复用的组件必须让使用者能干预行为。为 DataGrid 添加:
RowClick:回调参数为 TItem,支持导航或弹窗详情OnDataRequested:异步委托,用于加载远程数据(替代直接传 Items)OnInitializedAsync 内触发首次加载,配合 IsLoading 状态显示骨架屏ChildContent 渲染空白态、加载中、无数据提示,比写 if-else 更清晰默认用 Bootstrap 或 Tailwind 的基础表格类(如 table table-striped),但不要锁死 CSS:
Class 参数接收额外 class 名,叠加自定义样式px、%、fr(若用 Flex/Grid 布局)<div class="overflow-x-auto">
<li>选中行高亮?加 <code>:hover 或绑定 selectedItem 动态加 class基本上就这些。组件越早抽象出“什么不变”(状态管理、事件流)和“什么可变”(列定义、模板、样式),复用性就越强。
以上就是Blazor 创建可复用 DataGrid 组件教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号