2010-09-09 30 views
8

Estoy usando RadGrid de Telerik con tres controles LinkButton en CommandItem, y quiero ocultarlos o mostrarlos usando la instrucción switch en el código subyacente.Cómo encontrar el control en CommandItemTemplate para 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> 

¿Hay alguna forma de resolver este caso?

+0

¿Por qué un wiki de la comunidad? –

Respuesta

13

¿Qué tal esto?

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

Estoy usando la versión v2013.1.220.45 y esto no funcionó: la matriz está vacía para la primera línea del código anterior. Estoy usando una 'CommandItemTemplate' personalizada que podría ser el problema, no estoy seguro . La configuración de 'CommandItemDisplay' es' TopAndBottom'. – PeterX

+0

@PeterX seguro en el evento RadGrid1_ItemDataBound la matriz no es nula. –

+0

@PeterX intente recuperar los controles en el controlador 'RadGrid_ItemCreated' utilizando' FindControl() 'en' GridCommandItem' como se sugiere en [esta publicación de Telerik] (http://www.telerik.com/community/forums/aspnet/grid/ find-control-within-commanditemtemplate.aspx # 668918) – Boyan

3

Asegúrese de tener la propiedad CommandItemDisplay del conjunto MasterTableView establecida en un valor diferente a None. De lo contrario, la matriz de elementos de comando que se devuelve desde el método GetItems estará vacía.

2

Ocultar o mostrar los controles en su CommandItem durante ItemCreated caso de la red:

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 
     } 
    } 
Cuestiones relacionadas