本帖最后由 penley 于 2022-1-18 08:32 编辑
环境:AR14,ASP.NET Core MVC应用中使用JSViewer做报表展现。
由于我无法使用动态数据源为参数传递候选值,所以使用自己的查询界面为报表传递查询参数。
这样,JSViewer的菜单栏,除了导出功能就没什么用处了,故在我的应用中,我想隐藏菜单栏,而把菜单栏上原来的导出按钮放在工具栏上。
一、首先通过调用如下方法,隐藏了菜单栏
- viewer.sidebar.toggle(false);
复制代码 二、参考如下文档,增加自定义导出excel按钮
https://gcdn.grapecity.com.cn/fo ... 8328&extra=page%3D1
- let excelExportButton = {
- key: '$pdfExportButtonKey',
- iconCssClass: 'icon-page_excel',
- enabled: true,
- action: function (item) {
- viewer.export('XLSX', null, true/*, { Title:"这是标题", FileName: '文件.xlsx', Multisheet: false, LayoutMode: "Galley"}*/);
- },
- onUpdate: (args, toolbarItem) => {
- abp.log.debug("args:", args);
- abp.log.debug("toolbarItem:", toolbarItem);
- }
- };
- viewer.toolbar.desktop.addItem(excelExportButton);
复制代码
三、问题
按二中方法,可以正常添加按钮,并且可正常导出。
但有一个问题,怎么控制新增加的这个按钮状态,像其他按钮一样,无报表加载(或加载过程中)时,将按钮无效,直到加载完成再变为有效呢?我查看文档,要在onUpdate方法中更新按钮状态。该如何更新呢?怎么判断文档加载完成呢?
我看输入参数中,args.session.state 值会发生变化,是判断这个值吗?
|
|