2010-09-09 17 views
0

Pour un RadGrid, en cas GridNeedDataSource, les EventArgs comprennent: RebindReason IsFromDetailTableComment déterminer quelle table de détail a levé Telerik radgrid NeedDataSource Event?

Ceci est utile pour déterminer si la reconsolidation est causée par des parents ou de la grille des enfants. Que dois-je faire si j'ai une grille à trois niveaux? Ce paramètre booléen me dira seulement si la grille élevant l'événement était le parent, elle ne peut pas me dire si c'était l'enfant ou le petit-enfant ... ou est-ce que quelque chose m'échappe? Parent> Enfant> Petit enfant

Comment puis-je déterminer quelle profondeur de la hiérarchie de la grille a déclenché l'événement?

EDIT: Je pense que je peux exploiter les sender.Equals() méthode, mais je ne suis pas sûr de savoir comment cibler les détails ou contrôle la table maître

Répondre

4

Vous devez utiliser l'événement DetailTableDataBind à cette fin. Vous pouvez vous référer au RadGrid programmatic hierarchy binding demo. L'événement DetailTableDataBind est l'approche recommandée pour les tables de détails de liaison. Il se déclenche pour chaque table de détail qui doit être databound. À l'aide de l'objet argument d'événement, vous pouvez obtenir l'instance GridTableView qui est liaison (e.DetailTable). Si vous avez spécifié des noms pour vos tables, e.DetailTable.Name identifie votre table de détail pour l'élément de grille parent en cours.

0

Eh bien, je ne l'ai pas trouvé un moyen de déterminer que ce soit . Ce que j'ai fait est d'écouter l'événement ItemCommand de la grille et de déterminer la vue de la table qui a déclenché la commande expand/collapse via l'argument e.Item.OwnerTableView.Name.

0

Chaque grilletable de RadGrid a un nom. Dans DetailTableDataBind vous pouvez vérifier le nom de la grille et sélectionner la source de données pour la relier par elle ...