Hello,
I am using an Ignite Grid in an angularjs application and would like to have template columns with buttons using ng-click to trigger angularjs code. I got this working with the help of Damyan by running $compile on the dataRendered event of the grid. It was working fine but now as the number of rows grows I had to activate virtualization for things to remain usable. Now the dataRendered event does not seem to be triggered when virtualization renders new rows. I also tried the rowRendered event which seems to not be called at all.
So my question is which event could I listen to so I can run $compile for newly virtualized rows and thus make the ng-click work again.
Thanks for helping me on this.
Hi ruud7,
Which virtualization are you using: fixed or continuous? Could you send me an isolated sample that replicates your issue in order to test it on my side?
Waiting for your reply.
Regards,
Tsanna
Hello Tsanna,
thanks for your reply.
I'm using continuous virtualization but it doesn't make any difference if I use fixed virtualization.
I tried to write an isolated sample. This is actually pretty far from my actual solution (for example I'm using the ignite angular directives) but it shows how the virtualization results in the ng-click no longer being bound once you scroll down several records. I added a button calling $compile so it is bound again. Now of course I don't want to have that button but instead some event from the grid that i can use to call the $compile once virtualization rerenders the rows.
Here is the JSFiddle with my sample: http://jsfiddle.net/jkmLqkeb/4/
BR
Hello ruud7,
Please note that there is no event from the public grid API that will be called on virtual scrolling, hence your template button click won't be triggered once you scroll down. However there is a private event related to virtual records rendering, which fires on each subsequent bunch of rows that loads on demand. The event is called 'virtualrecordsrender' and could be defined and used within the grid initialization, for instance:
$("#grid").igGrid({... virtualrecordsrender: function (e, args) {...}...});
Since this event is not exposed in the public grid API, you may submit a new product idea for this to be included in future versions at: http://ideas.infragistics.com
Steps to create your idea: 1. Log into the Infragistics Product Idea site at http://ideas.infragistics.com (creating a new login if needed).2. Navigate to the product / platform channel of your choice (e.g. WPF, Windows Forms, ASP.NET, HTML5 / Ignite UI, iOS / NucliOS, etc.)3. Add your product idea and be sure to be specific and provide as much detail as possible. • Explain the context in which a feature would be used, why it is needed, why it can’t be accomplished today, and who would benefit from it. You can even add screenshots to build a stronger case. Remember that for your suggestion to be successful, you need other members of the community to vote for it. Be convincing!• [CASE: “Reference case [case number], FORUMS: “Include a link to this thread”] in your idea so product management will be able to look back at this case.
If you have further questions, please let me know.
I tried the event and it looks good so far, so thanks for your help.
Regarding posting this as an idea I have to say that my experience with my other ideas didn't prove this as very useful. I posted two ideas, which to my believe should be way more interesting to a broad audience, several months ago and so far the ideas are still stuck in the initial "Under Review" state without any feedback. As far as I can see this seems to be the fate for most of the ideas. But maybe you could just take it with you and add it to your backlog - it would definetly be an improvement for special circumstances and shouldn't prove to be very complicated to change from private to public.
Thanks and best regards.
Based on your feedback about the ideas site, we changed the label for the 'Under Review' status to 'Awaiting Votes' in order to hopefully better communicate what it means. We do have this article on the meaning of statuses, in case that helps as well.
Just to give a little more insight into our prioritization, we use user voice as one of several inputs into the product planning process. We get many more suggestions there than we have time to implement, and we are also responding to other market conditions and customer feedback we get through other means. So even though ideas in themselves are almost always good and valid, we have to stack them up against all the other ideas and other considerations as well. That said, as a general rule, we do give more weight to ideas with more votes than those with fewer, and our goal is always to respond to as many suggestions as we can.
Rest assured we do review the ideas and consider them in our planning, so it's always better to submit (or vote) on an idea than not.
Hope this helps.
Thank you for your feedback. I'm glad that you were able to resolve your issue.
Regarding submitting a new product idea for the current scenario, I believe that it would be a way more better to have such an idea suggested and available for future implementation and based on the customer's voting and interest it will be consider as a higher implementation priority. So, please do not hesitate to suggest it as product idea. If I can provide further assistance, feel free to contact me.