2

「Order by」、「Contains」、「Does not contain」などのテキストを置き換えて、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 では機能しません。両方のイベント ハンドラーがコード内で次々に追加されますが、動作するのは 1 つだけです。理由はありますか?RadMenuEventHandler が FilterMenu.ItemCreated の適切なタイプの EventHandler ではない可能性がありますか? Telerik のサイトで詳細なドキュメントが見つかりません。

4

1 に答える 1

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";
        }
    }
}
于 2012-07-26T09:36:40.673 に答える