Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Developing a row-clickable GridView

Joteke a posté un exemple très simple et bien expliqué pour développer ajouter à une gridView un événement lorsqu'on clique sur une ligne.
Ce comportement peut s'avérer en effet très utile.
Pour ce qui sont encore sons ASP.NET 1.1, il avait déjà rédigé How to develop a row-clickable DataGrid control? pour avoir la même fonctionnalité sur une datagrid.
L'idée est de développer un contrôle qui hérite de la gridView et de lui ajouter l'événement lorsqu'on clique sur une ligne.
 
Voici quelques extraits de code pour que vous compreniez l'essentiel :
1) on ajoute la propriété :
Public Property EnableRowClick() As Boolean
2) On substitue la méthode PrepareControlHierarchy afin de déclencher un évènement sur le clic d'une ligne
Protected Overrides Sub PrepareControlHierarchy()
            MyBase.PrepareControlHierarchy()
            
If EnableRowClick Then
                Dim i As Integer
                For i = 0 To Rows.Count - 1
                    Dim argsData As String = "rc" & Rows(i).RowIndex.ToString()
                    Me.Rows(i).Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(Me, argsData))
                Next
            End If

        End Sub

3) On substitue la méthode RaisePostBackEvent qui gère les évènements et on déclenche l'évènement OnRowClicked
Protected Overrides Sub RaisePostBackEvent(ByVal eventArgument As String)
            If eventArgument.StartsWith("rc") Then
                Dim index As Integer = Int32.Parse(eventArgument.Substring(2))
                Dim args As New GridViewRowClickedEventArgs(Me.Rows(index))
                OnRowClicked(args)
            Else
                MyBase.RaisePostBackEvent(eventArgument)
            End If

        End Sub
A l'utilisation, il suffit donc d'ajouter une instance de cette gridView à la page .aspx puis de gérer l'évènement :

Protected
Sub myGridView1_RowClicked(ByVal sender As Object, ByVal e As SampleControls.GridViewRowClickedEventArgs)
Handles myGridView1.RowClicked
        Response.Write("Index of the clicked row was: " + e.Row.RowIndex.ToString())
    End Sub
Publié lundi 9 janvier 2006 14:08 par tonio
Classé sous :
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: Developing a row-clickable GridView

Très bonne idée j'en ai super besoin par contre, vous n'auriez pas le code C#?

Merci :D
jeudi 16 février 2006 11:00 by gstrit

# re: Developing a row-clickable GridView

Scott Mitchell de 4guysFromRolla a aussi écrit un article sur ce genre de fonctionnalité pour une datagrid en C# :

http://aspnet.4guysfromrolla.com/articles/072104-1.aspx

ou sur la page de ses contrôles serveur :
http://scottonwriting.net/sowBlog/CodeProjects.htm
jeudi 16 février 2006 16:25 by Tonio
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [Fun] Votre simulateur de vol avec Microsoft ESP par Julien Chable le il y a 2 heures et 11 minutes

- [Best Practices] Customisation du My Site : Comment le modifier en amont et en aval par The Mit's Blog le il y a 3 heures et 25 minutes

- Patrick Tisseghem s'en est allé ... par The Mit's Blog le il y a 4 heures et 9 minutes

- MS AutoCollage par alex# le il y a 4 heures et 54 minutes

- Un grand SharePointeur nous a quitte : Patrick Tisseghem manquera à la communauté ! par RedoBlog - The .NET Gentleman !!! le il y a 5 heures et 20 minutes

- [WPF] Comment charger dynamiquement un fichier XAML qui définit des eventhandler ? par Thomas Lebrun le 09-04-2008, 10:56

- Article sur le filtrage des modèles de site SharePoint par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 09-04-2008, 00:11

- Adopter votre Redo en 3D - Clone Virtuel - avec photosynth par RedoBlog - The .NET Gentleman !!! le 09-04-2008, 00:07

- [Expression Web] Astuce de la Semaine : Mettre en bouton ses macros dans une barre d'outils. par Expression Web & Me le 09-03-2008, 20:48

- [.Net] Présentation du Client Profile par Elise's blog le 09-03-2008, 12:28