begin process at 2012 05 28 13:33:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

Tri personnalisé


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tri personnalisé

jeudi 31 janvier 2008 à 07:03:46 | Tri personnalisé

SuperBouly

Membre Club
Bonjour,
 Je travaille sur VS2005 langage vb.
(J'espère que cette fois ma question va s'afficher.)
Je désire pouvoir trier un gridView selon une colonne remplie Dynamiquement (onRowDataBound).
Il s'agit d'une liste d'Users  et de leurs Passwords. La colonne est remplie avec une propriété de profil.
Je ne vois pas bien comment faire; La doc msdn manque d'exemples sur le tri personnalisé.
Si qqn a une piste, merci d'avance

SuperBouly
jeudi 31 janvier 2008 à 23:23:02 | Re : Tri personnalisé

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonsoir,

Lorsque tu click sur le nom de la colonne, tu as un event qui est lancé (Sort ou je sais plus quoi) c'est ici que tu fais ta requetes qui te sortira tes données triés, puis tu binds ces données à ton gridview.


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
vendredi 1 février 2008 à 09:16:48 | Re : Tri personnalisé

SuperBouly

Membre Club
Bonjour et merci de ta réponse.
oui, je comprends, mais mon gridView est lié à une sqlDataSource, et  ma propriété de tri n'est pas un champ du dataRowView et ne peut pas l'être(enfin je crois),  puisque c'est un élément de profil (par exemple l'âge de l'user ou autre) et que je remplis pendant l'évènement  RowDatabound de chaque enregistrement.
 En un mot, je ne peux pas faire de requête incluant ce champ.
C'est là que je manque d'idées... et de savoir faire.

SuperBouly
vendredi 1 février 2008 à 11:31:22 | Re : Tri personnalisé

jesusonline

Membre Club Administrateur CodeS-SourceS
euh ? j'ai pas compris là :p

Dans tous les cas c'est à toi de gérer le tri, si tu ne fais pas la requête vers une base mais vers une collection en mémoire il faut trier cette collection, par exemple avec la méthode sort.


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
vendredi 1 février 2008 à 18:39:15 | Re : Tri personnalisé

SuperBouly

Membre Club

En détail, j'utilise la base SQLServer par  défaut de vs 2005 avec ses tables aspnet_Users, aspnet_Membership etc...
Mon GridView gvUsers est lié à une sqlDataSource et affiche les différents paramètres de tous les Users.
Une des colonnes TemplateColumn  est remplie avec une propriété de profil ("Age" par ex.)(de la table aspnet_Profile) dans la sub :

Protected
Sub gvUsers_RowDataBound(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) HandlesgvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then

    Dim UName As String = e.Row.DataItem("UserName") ' je repère l'user de la ligne
    Dim prof As ProfileBase = ProfileBase.Create(UName) 'je regarde son profile
    Dim Age As String = prof.GetPropertyValue("Age") ' je prend la valeur du paramètre "Age"
   Dim lbAge As Label = e.Row.FindControl("lbAge") ' je trouve le label de ma templatecolumn
   lbAge.Text = Age ' je lui affecte la valeur
etc....

Comme cette colonne ne peut pas correspondre à un champ de requête (enfin je crois), je ne peut lui appliquer le tri automatique.
Ok, je peux mettre tous ces strings dans un tableau, le classer, avoir des paires DataKey-Age,  mais après ? Que faire de ces données, comment vont-elles m'aider à classer le gridView?
Je ne vois pas bien quoi faire dans la sub gvUser.Sort
voilà voilà, j'ai essayé d'être + clair, je cherche un moyen, une piste.
merci @+
SuperBouly

samedi 2 février 2008 à 14:10:13 | Re : Tri personnalisé

jesusonline

Membre Club Administrateur CodeS-SourceS
J'ai pas compris, avec quoi tu binds ? tes données proviennent d'où ? un exemple de code ? :p


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
samedi 2 février 2008 à 14:44:35 | Re : Tri personnalisé

SuperBouly

Membre Club

Excuse moi, je suis dans mon histoire et je crois que tout le monde y est aussi !
Voilà les précisions :
Quand on démarre un projet web sur VS 2005, et qu'on choisit l'authentication "form" avec login et MdP, VS 2005 nous gratifie d'une Base sqlServer en mode fichier et nous met ASPNETDB.MDF dans le répertoire App_Data.
cette base comprend par défaut toutes les tables nécéssaires à l'authentification : aspnet_Users, aspnet_Membership, aspnet_Profile, aspnat_Roles, etc.. j'imagine que tu sais tout ça.
donc j'affiche tous les ayants droit de mon site avec une requête sur ces tables. Mon GridView gvUsers les affiche.Donc
le gridView est lié à la sqldatasource:

< asp : SqlDataSource ID ="sdsUsers" runat ="server" ConnectionString ="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT aspnet_Users.UserId, aspnet_Users.UserName, aspnet_Membership.UserId AS Expr1, aspnet_Membership.Password, aspnet_Membership.PasswordQuestion, aspnet_Membership.PasswordAnswer, aspnet_Membership.Email FROM aspnet_Membership INNER JOIN aspnet_Users ON aspnet_Membership.UserId = aspnet_Users.UserId">
</
asp:SqlDataSource>

Quant au GridView, il est constitué de boundColumns classiques avec une TemplateColumn au milieu

< asp : GridView ID ="gvUsers" runat ="server" AutoGenerateColumns ="False" DataKeyNames ="UserName" DataSourceID ="sdsUsers" Width ="100%" AllowSorting ="True" CellPadding ="4" ForeColor ="#333333" GriidLines ="None">
<
Columns >
<
asp : BoundField DataField ="UserId" HeaderText ="UserId" SortExpression ="UserId" Visible ="False" />
<
asp : BoundField DataField ="UserName" HeaderText ="Adherent" SortExpression ="UserName" />
'ma templateColumn
<
asp : TemplateField HeaderText ="Age">
<
ItemTemplate
>
<
asp : Label runat =server ID =lbAge></ asp : Label
>
</
ItemTemplate
>
</
asp : TemplateField
>

<
asp : BoundField DataField ="Password" HeaderText ="Passe" SortExpression ="Password" />
<
asp : BoundField DataField ="PasswordQuestion" HeaderText ="Question" SortExpression ="PasswordQuestion" />
<
asp : BoundField DataField ="PasswordAnswer" HeaderText ="R&#233;ponse" SortExpression ="PasswordAnswer" />
.***********
etc...
donc voila, mon label lbAge au milieu dans ma templateColumn est rempli comme je l'ai indiqué + haut (dans le message précédent) au cours du gvUsers.RowDataBound
Comment trier selon cette colonne ?
merci de ta patience !
SuperBouly
SuperBouly



Cette discussion est classée dans : tri, colonne, remplie, personnalisé


Répondre à ce message

Sujets en rapport avec ce message

Colonne de tri sur une colonne d'un tableau [ par sylvain88 ] Bonjour,Sur une page de résultats suite à une requête je cherche à faire un entête de colonne pouvant faire un tri de mes réponse par nom de famille. Remplissage personnalisé d'une colonne selon le resultat d'une requete [ par Echizen_R ] Bonjour,J'ai un datagrid qui est lié à un dataset, le dataset est rempli par une requête. Une des colonnes de ma requête renvoie 0 ou 1 et je voudrais Tri d'un datagrid [ par SuperBouly ] Lorsque l'on clique sur une en-tête de colonne d'un datagrid pour déclencher le tri, est-il possible de récupérer le numéro de colonne à ce moment.( p colonne de datagrid et tri ... [ par Thanos_the_yopper ] Bonjour, j'ai un petit souci avec un datagrid : j'ajoute dynamiquement des colonnes dans ma datagrid de cette facon : BoundColumn dgc = new BoundCo Tri d'un datagrid [ par Pepin21 ] Hello,J'aurais voulu savoir s'il était possible de trier par ordre alphabétique ou croissant une colonne d'un datagrid en cliquant sur l'entête de la désactiver le tri d'un gridview [ par equinoxe83 ] Bonjour à tous,J'ai un soucis avec le tri sur l'entête d'un gridview.Si je clique sur un entête de colonne, il tri sur la colonne ... Donc tout est bi [C# 2.0] Tri sur colonne de gridview [ par javajavajava ] Bonjour, je solicite votre aide car je rencontre un petit problème. Je charge des données dans un gridview, dont des champs dates (au format Tri d'un gridview en cliquant sur le header [ par mezthium ] Bonjour, Voici mon problème : je voudrais trier mon gridview selon la colonne dont le header a été cliqué. Mon gridview est alimenté par un datasource Comment Insérer le Maximum de caractère dans une table avec une colonne de type LONG (mémo) [ par ngonka2003 ] Bonjour à tous. Mon problème est le suivant : J'utilise une Formview et un SqlDa la création d'une colonne template pour un gridview ou un datagrid en utilisant le code c# [ par jacksparoow ] BonjourJe cherche des exemples qui illustre la création d'une colonne template pour un gridview ou un datagrid avec l'insertion des côntroles(textbox.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales