have a hidden variable NonSortableColumns.
Populate this hidden variable on codebehind with pipe '|' seperated with all the columns that you dont want to Sort.
bind this for Radgrid's client side event RadGrid1.ClientSettings.ClientEvents.OnHeaderMenuShowing = "HeaderMenuShowing";
On aspx file, implement
<pre lang="Javascript">
function HeaderMenuShowing(sender, eventArgs) {
var NonSortableColumns = document.getElementById('NonSortableColumns').value.split('|');
for (var i = 0; i < NonSortableColumns.length; i++) {
if (NonSortableColumns[i] != '' && eventArgs.get_gridColumn().get_uniqueName() == NonSortableColumns[i]) {
for (var j = 0; j < eventArgs.get_menu().get_items().get_count(); j++)
{
var sortOption = eventArgs.get_menu().get_items().getItem(j).get_element().innerHTML.toLowerCase();
if((sortOption.search('ascending') >0) || (sortOption.search('descending') > 0) || (sortOption.search('clear sorting') > 0))
eventArgs.get_menu().get_items().getItem(j).get_element().style.display = "none";
}
break;
}
else
{
eventArgs.get_menu().get_items().getItem(0).get_element().style.display = "block";
eventArgs.get_menu().get_items().getItem(1).get_element().style.display = "block";
eventArgs.get_menu().get_items().getItem(2).get_element().style.display = "block";
}
}
}
Basically have hidden the sort options for Non Sortable columns