提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2022-05-26 10:47:17.870|阅读 141 次
概述:本文主要描述了DevExtreme Data Grid & Tree List控件全新的工具栏自定义API,欢迎下载最新版产品体验!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在本文中,我们主要介绍全新的DataGrid和TreeList工具栏自定义API,并向您展示如何在下一个DevExtreme驱动的应用程序中利用其功能。
在以前的版本中,您可以使用 onToolbarPreparing 事件处理程序自定义工具栏。尽管这种方法解决了基本用例,但它不允许您动态修改工具栏或以声明方式配置工具栏(对于 Angular、React 和 Vue 用户很重要)。 为了解决这个限制,v21.2附带了一个新的属性:
toolbar: { visible: Boolean, // `true` - the toolbar is visible; // `false` - the toolbar is hidden; // `undefined` - the toolbar is visible if it contains items disabled: Boolean, // Specifies whether the toolbar responds to user interaction items: Object[] // Configures toolbar items }
在接下来的部分中,我们将描述一些使用场景并讨论新的toolbar属性的使用。请注意,虽然每个代码清单仅针对我们支持的框架,但所用的新功能都可用于Angular、Vue、React、jQuery、ASP.NET MVC 和 ASP.NET Core。
添加自定义工具栏项
要配置工具栏项,您需要指定 items 数组,该数组可以包含预定义的项目(导出按钮、搜索面板等)和自定义项目。以下代码将自定义 'Refresh’ 按钮添加到工具栏,请注意:如果您希望最终用户可以使用它们,还应该在代码中声明预定义的项目(例如Column Chooser按钮)。
Angular
<!-- app.component.html --> <dx-data-grid id="gridContainer"> <dxo-column-chooser [enabled]="true"></dxo-column-chooser> <dxo-toolbar> <dxi-item location="after"> <dx-button icon="refresh" (onClick)="refreshDataGrid($event)"> </dx-button> </dxi-item> <dxi-item name="columnChooserButton"></dxi-item> </dxo-toolbar> </dx-data-grid> // app.component.ts // ... import { DxDataGridModule, DxDataGridComponent } from "devextreme-angular/ui/data-grid"; import { DxButtonModule } from "devextreme-angular/ui/button"; @Component({ // ... }) export class AppComponent { @ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent; refreshDataGrid() { this.dataGrid.instance.refresh(); } }
删除或重新排列工具栏项目
如果您声明自定义items数组,则默认数组将被覆盖,可以利用此行为来删除工具栏项(不要将其包含在自定义数组中)。
UI 中的工具栏项会保留它们的声明顺序,如果您想重新排列工具栏项目,只需修改它们的声明顺序,您还可以控制工具栏项目出现的位置(location属性指定工具栏项目在工具栏本身内的位置)。在以下示例中,位置属性用于将搜索面板移动到工具栏的左侧:
React
export default function App() { return ( <DataGrid> <ColumnChooser enabled={true} /> <SearchPanel visible={true} /> <Editing allowAdding={true} allowUpdating={true} allowDeleting={true} /> <Toolbar> <Item name="searchPanel" location="before" /> <Item name="columnChooserButton" /> <Item name="addRowButton" /> </Toolbar> </DataGrid> ); }
自定义预定义工具栏项
如果您不想从头开始定义工具栏项,可以使用 options 属性自定义预定义项,此属性接受用作工具栏项的 DevExtreme 组件的配置。 例如,要自定义 Add Row 按钮,请使用 DevExtreme Button 属性; 对于 Export 按钮,使用 DropDownButton 属性等。以下代码覆盖 Add Row 按钮的 onClick 事件处理程序,并将自定义项添加到 Export 下拉菜单中。 请注意,导出菜单项数组包含未定义的条目,它们用作默认菜单命令的占位符。
React
export default function App() { const dataGridRef = useRef(); const addRowButtonOptions = useMemo(() => { return { onClick() { dataGridRef.current.instance.addRow(); notify("Add Row was clicked"); } }; }, []); const exportButtonOptions = useMemo(() => { return { items: [ undefined, undefined, { icon: "export", text: "Export to CSV", onClick() { notify("Export to CSV was selected"); } } ] }; }, []); return ( <DataGrid ref={dataGridRef}> <Editing allowAdding={true} allowUpdating={true} allowDeleting={true} /> <Export enabled={true} allowExportSelectedData={true} /> <Toolbar> <Item name="addRowButton" options={addRowButtonOptions} /> <Item name="exportButton" options={exportButtonOptions} /> </Toolbar> </DataGrid> ); }
禁用/启用工具栏项
Toolbar items包括一个禁用的属性,您可以使用此属性来控制用户与各个工具栏项的交互(工具栏项是否响应单击)。
Vue
<template> <DxDataGrid> <DxColumnChooser :enabled="true" /> <DxSearchPanel :visible="true" /> <DxToolbar> <DxItem name="columnChooserButton" :disabled="isColumnChooserDisabled" /> <DxItem name="searchPanel" /> </DxToolbar> </DxDataGrid> <DxCheckBox text="Disable the Column Chooser Button" v-model="isColumnChooserDisabled" /> </template> <script> // ... export default { // ... data() { return { isColumnChooserDisabled: true }; } }; </script>
隐藏/显示工具栏
要控制工具栏的可见性,请使用 属性。
Angular
<!-- app.component.html --> <dx-data-grid> <!-- … --> <dxo-toolbar [visible]="isToolbarVisible"></dxo-toolbar> </dx-data-grid> <dx-check-box text="Display the Toolbar" [(value)]="isToolbarVisible"> </dx-check-box> // app.component.ts // … export class AppComponent { isToolbarVisible: boolean = true; // ... }
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。
DevExpress技术交流群6:600715373 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都网本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
高性能HTML5/JavaScript开发框架,利用现代Web开发堆栈构建优异性能的应用程序。
DevExpress Universal Subscription行业领先的界面控件开发包,帮助企业构建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢