首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PivotGrid及其选择器不能正常绑定/工作

PivotGrid及其选择器不能正常绑定/工作
EN

Stack Overflow用户
提问于 2017-09-27 14:45:43
回答 1查看 242关注 0票数 0

我开发了一个使用Angular2、IgniteUI/不碎片化PivotGrid控件来加载PivotGrid的应用程序。我们正在动态地传递多维数据集信息,即度量/维度,并将json数据与PivotGrid绑定。在他们的github演示中,我们使用了由IgniteUI/不脆弱性提供的Angular2包装器组件。

以下是我的申请的简短说明:-

工作簿是具有下拉列表的父组件。下拉列表的Onchange将触发PivotGrid组件(它是Workbook组件的子组件)来加载和绑定PivotGrid。在绑定/加载PivotGrid网格之后,它应该加载PivotGrid的选择器。此选择器放置在此PivotGrid下名为slideout的子组件中。基本上,每当下拉列表被更改时,它应该分别加载适当的PivotGrid及其选择器组件。

  1. 在父组件有下拉列表的工作簿中,当下拉值发生变化时,"OnChange“事件触发器将触发PivotGrid中的ngOnChanges事件,因为它的Input()参数值正在被更改。
  2. 在PivotGrid中,在ngOnChanges事件中,它调用绑定网格的本地方法LoadInfraPivotGrid()。绑定网格后,我将更改幻灯片组件的输入()参数值,该值将再次触发幻灯片组件中的ngOnChanges事件。
  3. 在ngOnChanges事件期间滑出时,它绑定选择器组件。
  4. 绑定选择器组件的数据是使用保存数据的@Injectable组件SessionService从父SessionService传递的。这些值从这个SessionService中读取,然后与选择器绑定。

我在这里面临的问题是数据没有正确地绑定/加载数据透视网格/选择器。结果是,每当我试图更改选择器中的度量值/维度时,PivotGrid就会崩溃,并出现以下错误消息。当我不断地在选择器控件中尝试更改/修改时,就会出现这个问题。

代码语言:javascript
运行
复制
    Uncaught TypeError: Cannot read property 'top' of undefined
        at t.(anonymous function).(anonymous function)._positionOverlayDropAreas (http://localhost:3000/js/IgniteUI/infragistics.lob.js:662:19496)
        at t.(anonymous function).(anonymous function)._positionOverlayDropAreas (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at t.(anonymous function).(anonymous function)._onDataRendered (http://localhost:3000/js/IgniteUI/infragistics.lob.js:662:18161)
        at t.(anonymous function).(anonymous function)._onDataRendered (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at HTMLTableElement.dataRendered (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:12953)
        at t.(anonymous function).(anonymous function)._trigger (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:10002)
        at t.(anonymous function).(anonymous function)._renderData (http://localhost:3000/js/IgniteUI/infragistics.lob.js:138:17643)
        at t.(anonymous function).(anonymous function)._renderData (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at t.(anonymous function).(anonymous function).proxy (http://code.jquery.com/jquery-1.12.3.js:529:14)
        at Class._invokeCallback (http://localhost:3000/js/IgniteUI/infragistics.core.js:270:30197)

请在URL中找到示例源

即使我把报告按行向下钻,它也会崩溃。你知道我在这里犯了什么错吗?有什么解决办法吗?

编辑:现在我得到了一个不同的错误,我提到的错误/异常可以在示例代码本身中再现。复制该问题的步骤:-

  1. 请从下拉列表中打开" Report3“,Report3将被加载。
  2. 将“供应商”从“项目记分卡”拖放到列中(请参考快照)
  3. 拖放“零售商”到“行”之后,网格立即崩溃。

代码语言:javascript
运行
复制
    Uncaught TypeError: Cannot read property 'key' of undefined
        at t.(anonymous function).(anonymous function)._transformGridData (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:23266)
        at t.(anonymous function).(anonymous function)._transformGridData (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at t.(anonymous function).(anonymous function)._configureOptions (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:12632)
        at t.(anonymous function).(anonymous function)._configureOptions (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at t.(anonymous function).(anonymous function)._onGridUpdated (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:26768)
        at t.(anonymous function).(anonymous function)._onGridUpdated (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028)
        at Class.<anonymous> (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:9410)
        at Class.dispatch (http://code.jquery.com/jquery-1.12.3.js:5226:27)
        at Class.elemData.handle (http://code.jquery.com/jquery-1.12.3.js:4878:28)
        at Object.trigger (http://code.jquery.com/jquery-1.12.3.js:5130:12)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-28 08:23:17

在第一次创建枢轴网格时,应该首先设置widgetId属性。在声明gridId组件中的InfraPivotGrid属性时,应该这样做:

代码语言:javascript
运行
复制
private gridId: string = "pivotGrid";

或进入该类的构造函数:

代码语言:javascript
运行
复制
    constructor(private _SessionService: SessionService, private _WidgetConfigService: WidgetConfigService) {
        console.log("In constructor of InfraPivotGrid");
        this.gridId = "pivotGrid";
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46450862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档