I need to get an ID for a selected row based on the row being double clicked. I already have the event firing, I just need the way to access the grid data:
$(document).ready(function () { $('#InstrumentListGrid').delegate('.ui-iggrid-activerow', 'dblclick', function (e, args) { get the ID from the grid somehow
var url = "@Url.Action("Edit", new { id = id })"; window.location = url; }); });
How can do this?
$('#InstrumentListGrid').delegate('.ui-iggrid-activerow', 'dblclick', function (e)
This is just using the jQuery delegate function to attach a function to the dblclick event of the element. '.ui-iggrid-activerow' is just the selector, which I got from looking at the class that was attached to the element when it became the active row. See http://api.jquery.com/delegate/ for the jQuery delegate spec.
var dataview = $('#InstrumentListGrid').data('igGrid').dataSource.dataView();
Again, using the jQuery selector to get the grid - $('#InstrumentListGrid') - I then get the current dataView (the data rows being currently displayed on the page) from the grid datasource, so that I can then access the correct row in the following lines of code.
HTH,
Dane.
Hi danenatoli,
I tried your solution and it worked great for me too. I want to understand the code a little more though.
Could you elaborate on these 2 lines? Is this syntax documented somewhere I can read up on - especially "ui-iggrid-activerow"?
$('#InstrumentListGrid').delegate('.ui-iggrid-activerow', 'dblclick', function (e) {
Thanks,
John
Consider it resolved unless you can provide a better answer Mike! :)
Hello Dane,
I am following up to see if this matter is resolved.
Please let me know if I may be of further assistance with this matter.
Sincerely,Mike P.Developer Support EngineerInfragistics, Inc.www.infragistics.com
Worked it out myself:
$(document).ready(function () { $('#InstrumentListGrid').delegate('.ui-iggrid-activerow', 'dblclick', function (e) { var row = $('#InstrumentListGrid').igGridSelection('selectedRow'); var dataview = $('#InstrumentListGrid').data('igGrid').dataSource.dataView(); var cellValue = dataview[row.index]["ID"]; var address = "@Url.Action("Edit")" + "/" + cellValue; window.location = address; }); })