2009-11-20 3 views
1

J'ai créé des vues pour Multiview dynamiquement. Dans le contrôle de vue, j'ai un contrôle Gridview qui a un contrôle case à cocher. J'ai un bouton dans la page principale aspx sur le clic de laquelle il va vérifier (si cochée ou non) pour toute la case à cocher et aller chercher la ligne correspondante de la grille. La vue est pour le menu à onglets. Dans chaque onglet, la grille affiche les données dans le runtime. Ont défini le contrôle dynamique dans Page_PreInit. Je ne suis pas en mesure d'accéder à la case à cocher. Comment pourrais-je y parvenir?Impossible d'accéder au contrôle dynamique

Merci

Répondre

0

Vous devez utiliser Control.FindControl Method

+0

J'ai essayé d'utiliser FindControl mais il ne fonctionne pas.Sai Quand j'utilise .Findcontrol (chk1), il n'identifie pas chk1 (qui est la case à cocher). Pouvez-vous me dire où devrais-je écrire la méthode FindContol. J'ai besoin que dans le cas du bouton – Avi

+0

avez-vous une seule case à cocher? ou dans chaque rangée? Si vous devez écrire l'ID de la case à cocher –

+0

Il y a une case à cocher dans chaque ligne et cette case à cocher a également été créée dynamiquement dans le ItemTemplate du champ Modèle. – Avi

0

Une FindControl récursif pourrait être plus utile si vous avez l'ID du contrôle.

public static T FindControlRecursive<T>(this Control parentControl, string id) where T : Control 
    { 
     T ctrl = default(T); 

     if ((parentControl is T) && (parentControl.ID == id)) 
      return (T)parentControl; 

     foreach (Control c in parentControl.Controls) 
     { 
      ctrl = c.FindControlRecursive<T>(id); 

      if (ctrl != null) 
       break; 
     } 
     return ctrl; 
    } 
// and then: Page.FindControlRecursive<CheckBox>(idOfYourControl); 
Questions connexes