Responding to Row Selected Events in the Editable/SData Grid in Infor CRM Web

The Editable Grid, or SData Grid in the Infor CRM (Saleslogix) web client is a dojo-based grid based on dgrid. This means that, for the most part, you can do just about anything with the editable grid that you can do with dgrid. In Infor CRM, there’s a few layers to the grid that you might need to deal with, depending on what you’re wanting to do. Some of them are a wrapper widget with an internally implemented grid. It gets tricky sometimes. However, for responding to a row selected event, it’s pretty straight forward.

For this example, we’ll respond to the row selected event of a grid of Opportunities. When a row is selected, we’ll retrieve the SData entity bound to the row. To do this, we’ll add the following to a LoadAction to wire up the event. The grid itself uses dojo/on and you just pass it an event it emits that you want to respond to. In our case it is the dgrid-select event. Let’s look at the code. Keep in mind, the code we’re adding to the LoadAction is C#, that creates a string of Javascript and registers that on the page.

var script = @"
// checking to see if the grid has been created yet
var intId = setInterval(function() {
    var oppGrid = dijit.byId('AccountOpportunitiesgrdAccOpportunities');
    if (oppGrid) {
        // once it's created, stop checking and then wire the event
        clearInterval(intId);
        oppGrid.on('dgrid-select', function(event) {
            // This will fire when the row is selected
            
            // Retrieve the entity, which is the bound 
            // entity for the row. in this case, the opportunity
            var entity = event.rows[0].data;
            // ...
        });
    }
}, 100);
";
// Register the script 
ScriptManager.RegisterStartupScript(Page, GetType(), "scriptAccountOppGrid", script, true);

Pretty straight forward. Note, in the code, I retrieve the entity for the bound row. This entity will contain the properties that are bound as columns in the grid. You can add more to this entity by adding additional properties to the grid’s Select property. This way, the fields you need are available in the entity without the need to add more columns to the grid or do a separate SData call to retrieve them.

You can see a list of events emitted by the grid here: Working with dgrid events

ABOUT THE AUTHOR

Ryan Farley

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix, now Infor CRM, since 2001 and believes in sharing with the community. His new passion for CRM is Creatio, formerly bpm'online. He loves C#, Javascript, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) and Creatio (bpm'online) news and product updates!

You have Successfully Subscribed!