Maison > développement back-end > C++ > Comment utiliser efficacement FindControl pour accéder aux contrôles dans le ItemTemplate d'un GridView ?

Comment utiliser efficacement FindControl pour accéder aux contrôles dans le ItemTemplate d'un GridView ?

DDD
Libérer: 2024-12-26 01:53:10
original
672 Les gens l'ont consulté

How to Effectively Use FindControl to Access Controls Within a GridView's ItemTemplate?

Comment fonctionne la méthode FindControl lors de la recherche d'un contrôle à l'intérieur d'un champ de modèle GridView (plus précisément, un ItemTemplate) ?

Dans le contexte d'ASP. NET, la méthode FindControl permet aux développeurs de rechercher un contrôle spécifique au sein d'une hiérarchie de contrôles. Lorsqu'il est utilisé avec un ItemTemplate d'un GridView TemplateField, il permet d'accéder aux contrôles définis dans le modèle.

Mise à jour de la question avec le code :

Le code fourni présente un GridView avec plusieurs imbriqués. TemplateFields :

<asp:GridView ID="grvYourOpportunities"...>
  <Columns>
    <asp:TemplateField HeaderText="H">
      <ItemTemplate>
        <asp:HyperLink runat="server" ID="hlPlus" ImageUrl="~/plus.gif"></asp:HyperLink>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>
Copier après la connexion

Problème :

Le code vise à accéder et à manipuler le contrôle HyperLink ("hlPlus") défini au sein du ItemTemplate du TemplateField "H" . Cependant, l'utilisation de la méthode FindControl ne donne pas les résultats attendus.

Réponse :

Pour accéder avec succès à un contrôle dans le ItemTemplate d'un TemplateField, vous pouvez utiliser la méthode FindControlRecursive, qui recherche de manière récursive dans la hiérarchie des contrôles l'ID de contrôle spécifié. Voici un exemple :

protected void grvYourOpt_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hlPlus = e.Row.FindControlRecursive("hlPlus") as HyperLink;
        if (hlPlus != null)
        {
            // Your code to manipulate the HyperLink control here...
        }
    }
}
Copier après la connexion

La méthode FindControlRecursive garantit une recherche approfondie même dans les hiérarchies de modèles imbriquées, localisant efficacement le contrôle souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal