Maison >développement back-end >C++ >Comment rechercher et utiliser des contrôles dans le TemplateField d'un GridView ?

Comment rechercher et utiliser des contrôles dans le TemplateField d'un GridView ?

DDD
DDDoriginal
2024-12-31 10:51:10984parcourir

How to Find and Use Controls within a GridView's TemplateField?

Comment trouver un contrôle dans TemplateField de GridView ?

La recherche d'un contrôle dans un TemplateField d'un GridView peut être réalisée à l'aide de la méthode FindControl().

Scénario

Dans cet exemple, nous avons un GridView avec un TemplateField qui contient un HyperLink. La tâche consiste à accéder et à manipuler l'HyperLink à l'aide du code-behind.

Solution

Le code suivant montre comment accéder au contrôle HyperLink dans l'événement RowDataBound de GridView :

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink myHyperLink = e.Row.FindControl("myHyperLinkID") as HyperLink;
    }
}

Détaillé Explication

  1. GridView1_RowDataBound : Il s'agit du gestionnaire d'événements pour l'événement RowDataBound de GridView. Il est déclenché pour chaque ligne de données dans GridView.
  2. FindControl : Cette méthode est utilisée pour rechercher le contrôle HyperLink dans TemplateField. La syntaxe est e.Row.FindControl(controlID) où controlID est l'ID du contrôle que vous souhaitez rechercher.
  3. As HyperLink : La méthode FindControl renvoie un objet de type Control. Vous pouvez ensuite le convertir en type de contrôle spécifique auquel vous souhaitez accéder, qui dans ce cas est HyperLink.

Utilisation

Une fois que vous avez une référence au contrôle HyperLink, vous peut définir ses propriétés, gérer des événements ou effectuer d'autres opérations selon les besoins. Par exemple, vous pouvez définir la propriété NavigateUrl pour spécifier l'URL vers laquelle accéder lorsque le lien est cliqué.

HyperLink myHyperLink = e.Row.FindControl("myHyperLinkID") as HyperLink;
myHyperLink.NavigateUrl = "http://www.example.com";

Remarques

Il est important de noter que la méthode FindControl() recherche uniquement dans le cadre de la ligne de données actuelle. Si le contrôle est situé dans un TemplateField imbriqué, vous devrez peut-être utiliser la méthode FindControlRecursive().

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!

Déclaration:
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