修改Radgrid中每列的HeaderContextMenu项 [英] modifying HeaderContextMenu items for each column in Radgrid
问题描述
我有一个包含多列的radgrid。 3列我设置了sortable,所有其他列都是不可排序的。当我右键单击任何列时,会显示Headercontextmenu项目。
显示每列显示Ascending排序和按降序排序。我希望它只出现在可排序列中。
如果我设置EnableHeaderContextMenu = false,则每个列都隐藏了contextMenu。
如果有任何办法,请告诉我可以禁用不可排序列的上下文菜单或从上下文菜单中删除不可排序列的升序和降序选项
谢谢
I have a radgrid with multiple column. 3 columns i have set sortable and all the other columns as non sortable. When i right click on any column, Headercontextmenu items are displayed.
for each column it is showing Sort Ascending and Sort descending as options. I want it to appear only for Sortable columns.
If i set EnableHeaderContextMenu = false then contextMenu is hidden for each column.
Please let me know if there is any way i can disable Context menu for non sortable column or remove Ascending and descending option from Context menu for non sortable columns
Thanks
推荐答案
这可能会解决您的问题,将 SortExpression 属性指定为空字符串可以解决问题。像这样..
This might be resolve your issue, specifing SortExpression property to empty string should fix the issue. Like this..
<tr:GridTemplateColumn HeaderText="ColumnHeader" DataField="yourDataField" SortExpression="" >
谢谢
Thanks
有一个隐藏变量NonSortableColumns。
在代码隐藏中填充此隐藏变量,使用管道|分隔所有您不想排序的列。
绑定此Radgrid的客户端事件RadGrid1.ClientSettings.ClientEvents.OnHeaderMenuShowing =HeaderMenuShowing;
在aspx文件上,实现
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){
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]) {
//hides the sorting options from the header context menu of the column which are set are non-sortable
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";
}
}
}
基本上隐藏了Non Sortable列的排序选项
}
Basically have hidden the sort options for Non Sortable columns
这篇关于修改Radgrid中每列的HeaderContextMenu项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!