c# - Telerik RadGrid - 以编程方式修改 FilterMenu 中的文本

标签 c# asp.net telerik radgrid

我需要通过替换一些文本来修改 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 的网站上找不到任何详细文档。

最佳答案

请检查下面的代码片段。

 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";
        }
    }
}

关于c# - Telerik RadGrid - 以编程方式修改 FilterMenu 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11666022/

相关文章:

c# - WPF。在没有 ItemsSource 的 ListBox 中对项目进行分组

c# - 从默认的 mvc 应用程序数据库中删除用户

c# - <noscript> 标记中的内联 C#

asp.net - 在 ASP.NET MVC3 的 site.master 页面中将 CSS 作为变量实现

asp.net-mvc - 如何从 Telerik MVC 扩展本地化网格?

VS2005 中的 C# : will this() execute the base constructor code for an inherited class?

C# 通过添加属性扩展类

javascript - 更改 kendo ui 下拉列表的选定值

c# - 必须在 ListView 'ListView1' 上定义 ItemTemplate。有人帮我解决这个错误

c# - 设计师不认识 Telerik