2012-07-26 87 views
2

我需要通过替换一些文本(例如“Order by”,“Contains”和“Does not contain”)来修改radgrid的FilterMenu。Telerik RadGrid - 以编程方式修改FilterMenu中的文本

我尝试的解决方案是将事件处理程序添加到菜单的ItemCreated事件

grid.FilterMenu.ItemCreated += new RadMenuEventHandler(FilterMenu_ItemCreated); 

,然后在ItemCreated事件被激发,我的方法应该简单地查找通过e.Item.Text对象某些字符串并替换它们。

void FilterMenu_ItemCreated(object sender, RadMenuEventArgs e) 
     { 
      if (e.Item.Text == "Group By") e.Item.Text = "Custom text"; 
     } 

但FilterMenu_ItemCreated方法根本无法启动。 我对为什么感到困惑,因为在修改HeaderContextMenu中的文本时,我以前使用过相同的方法 - 并且工作得很好。 例子:

radgrid.HeaderContextMenu.ItemCreated += 
new RadMenuEventHandler(HeaderContextMenu_ItemCreated); 

...

void HeaderContextMenu_ItemCreated(object sender, RadMenuEventArgs e) 
     { 
if (e.Item.Text == "Order By") e.Item.Text = "Custom text"; 
} 

所以这种方法也适用于在HeaderContextMenu,但不能用于FilterMenu。 这两个事件处理程序在代码中相继添加,但只有其中一个可用。 任何想法为什么? 难道是RadMenuEventHandler不是FilterMenu.ItemCreated的正确类型的EventHandler吗?在Telerik的网站上找不到任何详细的文档。

回答

2

请检查以下代码段。

protected void Page_Load(object sender, EventArgs e) 
{ 
    GridFilterMenu menu = RadGrid1.FilterMenu; 
    foreach (RadMenuItem item in menu.Items) 
    { 
     if (item.Text == "StartsWith") 
     { 
      item.Text = "Your new text"; 
     } 
    } 
} 
+0

这样做的伎俩,谢谢!我选择在radgrid的preRender中实现这个代码,而且工作得很好。 – Drkawashima 2012-07-26 12:00:56

相关问题