2016-04-11 11 views
0

Ich habe Dundas BI-Viewer in meine Anwendung mit iframe integriert, ich folgte dem Beispiel in offiziellen Dokumenten. Ich kann das Dashboard in meiner App sehen.Wie erhalten Sie die Benutzeraktionen?

von javascript.override.js Ich kann Javascript übersteuern und Dundas-Objekt erhalten, aber ich habe keine Ereignisse gefunden, um Benutzeraktionen zu abonnieren.

Ich wollte die Benutzerinteraktion (DOM-Ereignisse) erhalten, gibt es eine Möglichkeit, die Interaktionsereignisse mit den entsprechenden Daten zu fangen?

Antwort

2

Dundas BI bietet viele Benutzerereignisse, also denke ich, es geht eher darum, welche Sie fangen möchten. Zum Beispiel, wenn Sie ein Diagramm namens chart1 haben und Sie wollen das ‚Klick‘ Ereignis durch Javascript zu fangen, können Sie es über die ready Aktion mit folgendem Skript tun:

$(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. 
}); 

Um die entsprechenden Daten an einige zu bekommen x, y Punkt (wie aus dem obigen Beispiel e.originalEvent), können Sie so etwas wie dieses verwenden:

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

, dass Sie auch auf die Daten zugreifen können jederzeit Denken Sie daran, dass auf der Steuerung durch zur Zeit ist:

chart1.metricSetBindings[0].dataResult.cellset 

Für weitere Informationen können Sie viele Skriptbeispiele hier sehen: http://www.dundas.com/support/support-center/support-articles/scripting/

Und die JavaScript API-Dokumentation finden Sie hier: http://www.dundas.com/support/api-docs/js/

+0

ich es in allgemeiner Weise haben möchte, lässt ein Armaturenbrett sagen enthält 10 Steuerelemente wie Tabelle, Diagramm, etc ... Ich möchte nicht jedes Steuerelement anders behandeln, wenn es ein einzelnes Ereignis des Dashboards gibt, das auf irgendein Steuerelement des Dashboards klickt und gegebenen Rückruf mit entsprechenden Daten auslösen sollte. Wenn Sie auf eine Tabellenzeile klicken, sollte das Dashboard-Ereignis mit den Daten wie {control: table1, action: rowSelection, rowData: {...}} ausgelöst werden. –

+0

Nein, es gibt kein generisches Ereignis, weil es keine generische DOM-Sprudelung von Ereignissen von Elementen gibt, die keine untergeordnete Beziehung haben. – automaton