Hi,
Just started using igGrid here, and was wondering what would be the best approach to show a button for each row of data in igGrid ? for instance, I want to have a 'Copy' button for each row of data.
I've been looking around and found something called rowTemplate, but the jQuery js file kept throwing error, below is the code snippet:
@(Html.Infragistics().Grid<Matrix>() .AutoGenerateColumns(false) .ID("testGrid") .RenderCheckboxes(true) .Columns(column => { column.For(x => x.ID).HeaderText(" ").Width("80"); column.For(x => x.Description).DataType("string").HeaderText("Description"); column.For(x => x.Status).DataType("string").HeaderText("Status"); column.For(x => x.EffectiveFrom).DataType("date").HeaderText("Effective From"); column.For(x => x.EffectiveTo).DataType("date").HeaderText("Effective To"); column.For(x => x.CreatedBy).DataType("string").HeaderText("Created By"); }).RowTemplate("<tr><td>test</td><tr>").JQueryTemplating(true)
Off the top of my head, I can think of two solutions:
- Do you have row selection enabled ? if so, you can grab the selected row because I think the row is selected no matter where you click on the row using: $(".selector").igGridSelection("selectedRow");
$(
".selector"
).igGridSelection(
"selectedRow"
);
then grab the ID from the row object returned from that call
- If you're using .NET MVC, you can pass the Product ID in a viewbag, and put it as a property of the button, then on click you should be able to retrieve the ID from the button property
This is a solution for some scenarios but it does not work when you have an ID column that must be displayed and the button also need to be tied to that same key. In your scenario where you bound the Product ID to the button, if you needed to also have a column to display the Product ID and button to Remove that item (tied to Product ID), the template version would place a button in any column that is tied to the key "ProductID".
Any other suggestions for putting a button in the grid that is "associated with" but not directly tied to that key?
For example, I have a grid full of users. In the far right column, I want a button that says "Remove" for each user. The far left column has "User ID". When the user clicks the Remove button for a specific user, I need to be able to get the User ID associated with that button. I don't want the button to be bound to any key at all. I just want to know when one of the buttons was clicked what ID is associated with it so I can handle the removal in the background.
Thanks, that works. Missed that comment on the API.
Jeffrey
Hi Jeffrey Andika,
What you're observing is a known issue. The renderCheckboxes description in the API documentation states that it doesn't work when templating is enabled. In this case you should define column template and for the boolean columns in your grid.
I've updated the sample to include template for MakeFlag boolean column. I simply declare checkbox element in the template.
Here is the code for the grid initialization:
You can find the whole working sample attached to this post.
Hope this helps,
Martin Pavlov
Infragistics, Inc.
Hello jAndika,
Thank you for the update. I am looking into the matter of the Boolean column no longer rendering checkboxes after using the template column. I will give you a progress update by the end of the day tomorrow.
Sincerely,
Mike P.
Developer Support Engineer
www.infragistics.com