【发布时间】:2012-07-26 09:12:54
【问题描述】:
我需要通过替换一些文本来修改 radgrid 的 FilterMenu,例如“Order by”、“Contains”和“Does not contain”。
我尝试的解决方案是在菜单的 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 的网站上找不到任何详细的文档。
【问题讨论】:
标签: c# asp.net telerik radgrid