2010-03-19 3 views
0

J'ai un contrôle gridview dans un panneau de mise à jour. Lorsque j'exécute l'application et que je regarde le code source généré, il n'y a pas de code source sur gridview. Donc, je ne peux pas approcher les éléments à l'intérieur de la grille.Le code rendu de Gridview dans le panneau de mise à jour devient invisible

Ma question est, où est rendu le code de gridview et comment puis-je approcher les contrôles à l'intérieur?

Répondre

1

Etes-vous en train d'essayer d'afficher votre code source depuis votre navigateur? Ce n'est jamais une bonne idée si vous souhaitez accéder à vos contrôles à partir de votre grille de vue.

La façon d'accéder à vos contrôles depuis votre grille de recherche est de les trouver dans votre code. Si vous devez les passer à des scripts côté client, vous devez utiliser l'attribut ClientID de vos contrôles. Voici un exemple de ce que je fais dans l'événement RowDataBound de ma grille.

protected void checkGrid_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Button moveButton = (Button)e.Row.Cells[9].Controls[1];    
     moveButton.Attributes.Add("onclick","someJavaScript('"+moveButton.ClientID+"');"); 
    } 
} 

EDIT

Pour vous montrer un exemple de ce que vous avez à faire côté client, voici une simple fonction javascript qui utilise le ClientID

function someJavaScript(buttonID) 
{ 
    var button = document.getElementByID(buttonID); 
    button.Click(); 
} 

vous pouvez également utiliser le $ obtiennent la fonction et indiquent

var button = $get(buttonID); 
+0

Merci pour la réponse. J'ai déjà utilisé la façon dont tu me montres. Cela a bien fonctionné. Mais j'ai un bouton hors de gridview et des cases à cocher dans le gridview. Lorsque je clique sur le bouton, toutes les cases à cocher doivent être cochées. Avez-vous un moyen pour ce problème? – mavera

0

F ou clarification: vous avez ouvert la page dans un navigateur Web, que d'appuyer sur "Afficher la source" et que vous n'avez pas pu localiser le tableau HTML correspondant à GridView, alors qu'il existe à l'écran? Si oui, alors il est compréhensible - bienvenue dans le monde AJAX dynamique de HTML. Pour voir l'utilisation de la table:

  • OU FireFox + plug-in Firebug
  • OU IE + devtoolbar
  • OU Chrome

Tous ces outils a le menu: Inspecter l'élément - le pressant vous pouvez voir arbre DOM réel comme prévu.

Relatif votre question sur "approche". Les contrôles ASP.Net ont la propriété de méthode très utile ClientID pour tous les contrôles - cet identifiant contient une chaîne non-humaine comment l'élément nommé inclut réellement tous les conteneurs de noms parentaux. En utilisant cet ID, vous pouvez localiser un élément par exemple par document.getElementByID

Questions connexes