With a Telerik RadGrid, the right-click context menu is not obvious to my users, so I needed to add a button that will perform the same function.
Unfortunately this isn’t a feature built into the RadGrid, and it took me a large amount of trial and error to get working.
Here’s what it looks like:
And here’s how to do it:
1. Add the following javascript to the script section of your page:
function showMenu(event, columnName) { var RadGrid = $find("<%=RadGrid1.ClientID %>"); var gridId = RadGrid.get_id(); var columns = $find(gridId).get_masterTableView().get_columns(); for (var i = 0, length = columns.length; i < 1; i++) { if (columns[i].get_uniqueName() == columnName) { columns[i].showHeaderMenu(event, 75, 20); } } }
2. Ensure you have an “OnItemDatabound” event for your RadGrid
3. In your “OnItemDatabound”, place the following code:
if (e.Item is GridHeaderItem) { ImageButton button = new ImageButton(); button.ID = "ContextButton"; button.Style.Add("padding-left", "5px"); button.AlternateText = "ContextButton"; button.ImageUrl = "../Images/Icons/contextMenu.png"; button.OnClientClick = "showMenu(event, \"FullName\"); return false;"; e.Item.Cells[2].Controls.Add(button); }
Where I have the “FullName” listed, replace that with an actual column name in your grid.
Now your button should show up in HeaderCell 2 (which for me was my first column) and operate exactly the same as the Right-Click context menu.