2012-07-26 5 views
2

"주문자", "포함"및 "포함하지 않음"과 같은 일부 텍스트를 대체하여 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"; 
} 

그래서이 방법이 아닌 FilterMenu를 들어, HeaderContextMenu 작동합니다. 두 이벤트 처리기는 코드에서 서로 추가되지만 그 중 하나만 작동합니다. 어떤 아이디어가 필요한가요? 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에 thise 코드를 구현하기로 결정 했으므로 제대로 작동했습니다. – Drkawashima

관련 문제