没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-03-21 10:39:18.220|阅读 5 次
概述:在本文中,将介绍一个新集成演示,包括 DHTMLX Grid 和 Pivot,并将重点介绍DHTMLX的开发团队使用这些小部件创建 JavaScript 数据透视网格时使用的一些技术技巧。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
Capterra最新的技术趋势调查将数据管理列为金融企业在采用新软件解决方案时面临的主要挑战之一。现成的工具可能不够灵活,无法满足特定要求。因此,组织考虑投资定制解决方案(如数据透视表)来满足其数据管理和分析需求是合理的。
DHTMLX专注于JavaScript和HTML5 UI小部件和库,以帮助开发人员更快地构建功能丰富的、交互式的Web界面。 遵循现代网络开发的标准和做法,DHTMLX提供针对桌面和移动设备定制的顶级Web应用程序框架。
在本文中,我们将介绍我们的一个新集成演示,包括 DHTMLX Pivot和 Grid。在这里,我们将重点介绍我们的开发团队使用这些小部件创建 JavaScript 数据透视网格时使用的一些技术技巧。
DHTMLX Grid 是一款流行的JavaScript 数据网格小部件,用于处理表格数据,其最新版本 (9.1) 引入了行扩展器和多重排序等出色的新 PRO 功能。但通过与 DHTMLX Pivot 结合使用,Grid 小部件可以变得更加强大。使用下面的实时示例,您可以方便地在 Grid 和 Pivot 模式之间切换,应用不同的聚合,并动态分析数据。
我们的JavaScript 数据透视表于去年进行了全面改进,通过启用动态数据聚合来比较和分析复杂数据,增强了数据分析能力。这种集成允许最终用户在网格视图和数据透视视图中的原始表格数据之间无缝切换,在数据透视视图中,信息可以轻松组织成有效决策所需的有意义的摘要。
现在,让我们重点介绍将这些 DHTMLX 小部件集成到单个枢轴网格解决方案中的主要方面。除了将 DHTMLX 组件包含在项目中并初始化它们等常见事项的细节之外,我们将重点关注更具挑战性的任务。
在这些模式之间切换涉及动态初始化和销毁相应小部件的实例,同时保留配置。convertAndInit(state, save)函数负责此转换。
当切换到 Pivot 模式(state === 1)时,Grid 将被破坏,并且 Pivot 表将使用存储或默认设置进行初始化。
grid.destructor(); pivotWidget = new pivot.Pivot("#grid-pivot", { fields: storedPivotFields || [], config: storedPivotConfig || {}, data: dataset, });
当切换回网格模式(state===0)时,Pivot 将被破坏,并且网格将使用之前保存的设置重新出现:
pivotWidget.destructor(); grid = new dhx.Grid("grid-pivot", storedGridConfig);
这种方法可以防止内存泄漏,并避免同时运行同一组件的多个实例。
此外,displayButtons函数可确保为每种模式显示适当的 UI 按钮:
function displayButtons(state) { document.getElementById("edit-button").style.display = state === 1 ? "none" : "block"; document.getElementById("aux-buttons").style.display = state === 1 ? "flex" : "none"; }
DHTMLX Pivot 需要正确定义字段数据。否则,数字列可能会被视为文本,从而影响排序和聚合。使用dataTypes对象有助于根据网格数据的第一行自动检测列类型:
const dataTypes = {}; const firstItem = grid.data.getItem(grid.data.getId(0)); for (const c in firstItem) { dataTypes[c] = typeof(firstItem[c]) === "string" ? "text" : typeof(firstItem[c]) === "number" ? "number" : "date"; }
然后,使用检测到的数据类型动态生成 Pivot 字段:
storedPivotFields = grid.config.columns.map(col => ({ id: col.id, label: col.header[0].text, type: dataTypes[col.id] }));
这确保了 Pivot 组件无需手动配置即可正确处理数字和基于文本的数据。
没有定义行、列或值的数据透视表会显示为空白。为了避免出现不必要的空白 UI 并使最终用户能够在数据透视模式下与网格数据进行交互,您可以使用replaceInnerGrid(pivotWidget)函数在数据透视容器内插入一个临时网格:
function replaceInnerGrid(pivot) { const grid = pivot.container.getElementsByClassName("wx-grid"); if (grid.length) { grid[0].innerText = ""; innerGrid = new dhx.Grid(grid[0], defaultGridConfig); } }
该解决方案通过显示有意义的数据而不是空白屏幕来改善用户体验。
Pivot 组件的丰富功能使最终用户能够重新排列数据并执行复杂的计算以获得有价值的见解。因此,在切换到网格模式之前保留 Pivot 设置非常重要:
const tableApi = pivotWidget.getTable(); const pivotConfig = pivotWidget.api.getState().config;
代码通过提取 Pivot 的最终状态并将其应用于 Grid 来实现这一点。如果在 Pivot 模式下未进行任何配置更改,则恢复原始 Grid 配置:
if (!pivotConfig.rows.length && !pivotConfig.columns.length && !pivotConfig.values.length) { storedGridConfig = defaultGridConfig; storedPivotConfig = null;
由于 Pivot 和 Grid 处理列宽的方式不同,切换回 Grid 可能会导致宽度不一致。您必须确保每列都有预定义的宽度:
columns: columns.map(c => { c.id = c.id.toString(); c.width = c.width ? c.width : 150; return c; }),
如果没有这个步骤,从枢轴模式切换后,网格布局可能会中断或出现错位。
总而言之,这些措施有助于确保在 Grid 和 Pivot 之间切换时获得一致且用户友好的体验。
考虑到本博文中强调的要点,您可以像我们的示例中一样使用 DHTMLX Grid 和 Pivot 组件创建一个基本的 JavaScript 数据透视网格。使用这些产品中文档齐全的 API,您可以显著扩展其功能以满足各种项目需求。
DHTMLX Grid 和 Pivot 组件可以成为任何对处理和分析大型数据集有很高要求的数据密集型应用程序的绝佳补充。与所有 DHTMLX 产品一样,这些组件具有高度兼容性,可以轻松集成到基于流行前端框架的 Web 项目中的单一枢轴网格解决方案中。下载免费的 30 天试用版Grid 和 Pivot 组件,并在您的场景中测试这些产品的功能。
关于慧都科技:
慧都科技是专注软件工程、智能制造、石油工程三大行业的数字化解决方案服务商。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技DHTMLX在中国的官方授权代理商,提供DHTMLX系列产品免费试用,咨询,正版销售等于一体的专业化服务。DHTMLX专注于JavaScript和HTML5 UI小部件和库,以帮助开发人员更快地构建功能丰富的、交互式的Web界面。 遵循现代网络开发的标准和做法,DHTMLX提供针对桌面和移动设备定制的优秀Web应用程序框架。
下载|体验更多DHTMLX,请咨询,或拨打产品热线:023-68661681
加入DHTMLX技术交流QQ群(764148812),与更多小伙伴一起探讨提升开发技能。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
文章转载自:慧都网FastReport .NET 的主要功能之一是能够将多份报告合并为一份。当您需要合并来自不同来源的数据或以更方便的格式呈现信息时,此功能非常有用。在本文中,我们将讨论如何在 FastReport .NET 中将多份报告合并为一份。
本文将手把手教你如何用VMProtect对这一关键函数进行虚拟化保护,大幅提升代码安全性,让逆向工程攻击者无从下手!
在 PDF 文档中添加页眉和页脚有助于保持一致的版式和专业的外观。本文将介绍如何使用 Spire.PDF for Java,通过 Java 在现有的 PDF 文档中添加页眉和页脚,并提供详细的步骤和代码示例。
对于开发人员来说,由于自动化和定制化,通常首选使用编程方法来去除 PDF 中的水印。Aspose.PDF 提供可靠且可定制的解决方案,可无缝集成到各种应用程序中,确保准确性并保持文档完整性。
一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。
DHTMLX PivotdhtmlxPivot数据透视表能更快地对数据进行计数、总计、平均和执行许多其他操作。
DHTMLX DiagramdhtmlxDiagram有很多漂亮的交互式图表,只需几行代码就能生成任何你需要的图表。
DHTMLX Gantt针对您的解决方案的交互式JavaScript / HTML5甘特图
DHTMLX Spreadsheet高度可定制的JavaScript电子表格组件,可安全、方便地编辑和格式化数据。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢