I'm working on dojo chart generation based on the data from dojo dgrid.
The logic I'm building is as follows:
1. Subscribe to a topic in the main page:
connect.subscribe("dgridrefresh", mModule.generateRestChart);
2. Initiate a JsonRest datastore. Use the datastore to create a dgrid with pagination plugin.
3. Start the dgrid in some contentpane.
4. Publish an event to a topic upon "dgrid-refresh-complete" event.
The code is as follows (topicname is the paramter):
dgrid.on("dgrid-refresh-complete", function(event) {
console.log("refresh-complete. Publishing to " + topicname);
require(["dojo/_base/connect"], function(connect) {
connect.publish(topicname, [event]);
});
});
However, I observed that mModule.generateRestChart() function was only invoked once when the dgrid was initiated. I expect the method being called whenever pagination is executed.
Same information is here:http://dojo-toolkit.33424.n3.nabble.com/get-data-refresh-notification-from-dgrid-with-jsonrest-datastore-td3998670.html
In the end, it turned out the dgrid-refresh-complete event will only be emitted once when dgrid is refreshed with loading the first page of data.
I did a workaround by customizing the pagination plugin for dgrid. The change I made was pretty simple: inside the Deferred block of gotoPage method of dgrid.extensions.Pagination, I added another emit of dgrid-navigation-complete event, which is a customized event by myself.
No comments:
Post a Comment