2016-04-11 28 views
0

我在我的应用程序中使用iframe集成了Dundas BI查看器,我遵循官方文档中给出的示例。我可以在我的应用程序中看到仪表板。如何获取用户操作?

from javascript.override.js我可以覆盖JavaScript和获得Dundas对象,但我没有发现任何事件订阅捕获用户操作。

我想获得用户交互(DOM Events),有什么方法可以用适当的数据来捕捉交互事件吗?

回答

2

Dundas BI提供了许多用户事件,所以我认为它更多的是你想要捕捉哪些事件。

$(chart1).bind(dundas.view.controls.AdapterConstants.clickEventName, function (e) { 
    // here you can access e to get various information about the click event, 
    //including the original jQuery event under e.originalEvent. 
}); 

为了得到一些相关的数据:例如,如果你有一个名为chart1图表,你想赶上通过JavaScript的“click”事件,您可以通过ready行动下面的脚本做X,Y点(如从上面的例子e.originalEvent),你可以使用这样的事情:

var jQevent = e.originalEvent; 
var relatedData = chart1.getContext({ 
"position": { 
    "e": jQevent, 
    "left": jQevent.offsetX, 
    "top": jQevent.offsetY 
} 
}); 

请记住,在任何时候,你还可以访问当前位于通过控制数据:

chart1.metricSetBindings[0].dataResult.cellset 

欲了解更多信息,你可以看到许多脚本示例这里: http://www.dundas.com/support/support-center/support-articles/scripting/

和JavaScript API文档可以在这里找到: http://www.dundas.com/support/api-docs/js/

+0

我想有它在通用的方式,比方说仪表盘包含10个控件,如表格,图表等等...我不想以不同的方式处理每个控件,如果有任何单个仪表板事件处理点击任何仪表板控件,并且应该使用适当的数据激发给定的回调。假设用户点击了一个表格行,仪表板事件应该触发类似于{control:table1,action:rowSelection,rowData:{...}}的数据。 –

+0

不,没有通用事件,因为没有来自没有child-> parent关系的元素的事件的通用DOM冒泡。 – automaton

相关问题