2010-09-09 63 views
8

我使用radgrid控件從Telerik的與CommandItem 3個LinkBut​​ton控件,我想隱藏或使用switch語句在後面的代碼顯示它們。如何找到控制CommandItemTemplate的radgrid控件

<CommandItemTemplate> 
    <LinkButton runat="server" ID="approveAllLink" Text="Approve All" > 
    </LinkButton> 
    <LinkButton runat="server" ID="approveLink" Text="Approve" > 
    </LinkButton> 
    <LinkButton runat="server" ID="rejectLink" Text="Reject" > 
    </LinkButton> 
</CommandItemTemplate> 

反正有解決這種情況嗎?

+0

爲什麼一個社會維基? – 2010-09-09 22:42:15

回答

13

這是怎麼回事?

GridItem cmdItem = RadGrid1.MasterTableView.GetItems(GridItemType.CommandItem)[0]; 
LinkButton approveAllLink = cmdItem.FindControl("approveAllLink") as LinkButton; 
LinkButton approveLink = cmdItem.FindControl("approveLink") as LinkButton; 
LinkButton rejectLink= cmdItem.FindControl("rejectLink") as LinkButton; 

// Your switch logic here 
+1

我使用的版本是v2013.1.220.45,這對我來說不起作用:上面代碼的第一行數組是空的 - 我使用的是一個自定義的'CommandItemTemplate',這可能是問題,不確定。我的'CommandItemDisplay'設置是'TopAndBottom'。 – PeterX 2013-02-27 01:56:45

+0

@PeterX當然在RadGrid1_ItemDataBound事件中數組不爲空。 – 2013-06-26 19:41:50

+0

@PeterX嘗試使用'的FindControl()''上的GridCommandItem''RadGrid_ItemCreated'處理程序檢索控制如[本Telerik的交](http://www.telerik.com/community/forums/aspnet/grid/建議find-control-within-commanditemtemplate.aspx#668918) – Boyan 2013-08-07 18:47:03

3

確保您將MasterTableView的CommandItemDisplay屬性設置爲與None不同的值。否則,從GetItems方法返回的命令項數組將爲空。

2

隱藏或網格的ItemCreated事件中表現出的CommandItem控件:

protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
    { 
     if (e.Item.ItemType == GridItemType.CommandItem) 
     { 
      var approveAllLink = (LinkButton) e.Item.FindControl("approveAllLink"); 
      var approveLink = (LinkButton)e.Item.FindControl("approveLink"); 
      var rejectLink = (LinkButton)e.Item.FindControl("rejectLink"); 

      // Your switch logic here 
     } 
    }