web-dev-qa-db-fra.com

Obtenir des rangées d'un réseau Telerik RadGrid

Je travaille sur un réseau RadGrid et je souhaite accéder à ses lignes, mais il semble qu'il ne possède pas de propriété .Rows.

Voici ce que j'ai essayé jusqu'à maintenant:

enter image description here

Comment puis-je accéder à la collection Rows de rgCustomers? Je veux ajouter un bouton à chaque ligne.

12
Mahdi Tahsildari

Selon la documentation de Telerik ,

"Chaque ligne dynamique de la grille représente un enregistrement de la source de données spécifiée. Les lignes dynamiques sont représentées par la classe GridDataItem (un descendant de GridItem).

Chaque GridTableView a un ensemble de lignes (la collection Items) de type GridDataItem. "

Donc, vous voulez utiliser la collection Items de la grille, qui est une collection de GridDataItems.

protected void btnLoad_Click(object sender, EventArgs e)
{
  rgCustomers.DataSource = odsCustomers;
  rgCustomers.DataBind();
  foreach (GridDataItem row in rgCustomers.Items)
  {
  }
}
8
Daniel

Je suppose que c'est WPF/Silverlight RadGrid?

Si vous souhaitez accéder au contrôle de ligne dans une grille de données (pas de données de ligne), vous devez utiliser la propriété ItemContainerGenerator de RadGrid. Par exemple:

rgCustomers.ItemContainerGenerator.ContainerFromIndex(0);

ou

rgCustomers.ItemContainerGenerator.ContainerFromItem(odsCustomers[0]);

retournera le contrôle de la première ligne (de type RadGridViewRow si je me souviens bien)

3
Varius

- Si vous souhaitez ajouter un bouton sur chaque ligne:

GridTemplateColumn ou GridButtonColumn fera l'affaire.

- Si vous souhaitez accéder à la ligne en cours:

  1. Utilisez le gestionnaire d'événement OnClick du bouton.

    <telerik:RadButton ID="BTN_DEMO" runat="server" HeaderText="N°1 DEMO BTN"
    Text='<%#"Click Me iM N°"+((IhateEvalDataSource) Container.DataItem).Stuff_ID %>' 
    OnClick="BTN_DEMO_Click"></telerik:RadButton>
    
  2. Obtenez une référence à GridDataItem en utilisant (expéditeur en tant que RadButton) .NamingContainer.

    protected void BTN_BL_Click(object sender, EventArgs e)
    {
        GridDataItem G = ((RadButton)sender).NamingContainer as GridDataItem;
    }
    
  3. Utilisez la méthode GetDataKeyValue () pour extraire l’ID de l’enregistrement:

    DEMO_INT = (int)G.GetDataKeyValue("mySweetInt"); 
    DEMO_STRING = (string)G.GetDataKeyValue("MyString");
    
1
Drag and Drop