Accueil > Forum > > > > [ASPX][VB.NET] ItemCommand vs SortCommand
[ASPX][VB.NET] ItemCommand vs SortCommand
lundi 25 avril 2005 à 10:05:51 |
[ASPX][VB.NET] ItemCommand vs SortCommand

lucie houel
|
Bonjour à tous et à toutes,
Voici mon problème : j'ai un datagrid qui présente des lignes triables et que l'on peut éditer, supprimer, etc... Jusqu'ici tout à fait classique.
Quand je clique sur mes entêtes de colonne, c'est l'évènement Datagrid.itemcommand plutot que Datagrid.sortcommand qui est levé (j'ai regardé avec le debuuger de visual studio ce qui s'exécute).
Après quelques tests voilà ce que j'ai pu découvrir :
dans ma fonction liée à l'évènement itemcommand, j'ai utilisé la propriété : e.Item.ItemIndex avant de faire un select case sur le e.command (contrairement à ce que je faisais dans mes autres fichiers où là je l'utilisais dans chacun de mes case) :
exemple :
Code:
' Traitement pour chaque action du datagrid déclenchée Public Sub DG_Renvoi_ItemCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG_Renvoi.ItemCommand
dim i as integer = Convert.ToInt32(DG_Renvoi.DataKeys(e.Item.ItemIndex))
Select Case e.CommandName
Case "Edite"
' Si l'action est l'édition
...
Case "Annule"
' Si l'action est l'annulation de l'édition
...
Case "Modifie"
' Si l'action est la modification
...
Case "Supprime"
...
End Select
End Sub
dans ce cas, je n'entre pas dans la bonne fonction. Maintenant si je fais :
Code:
' Traitement pour chaque action du datagrid déclenchée Public Sub DG_Renvoi_ItemCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG_Renvoi.ItemCommand
Select Case e.CommandName
Case "Edite"
' Si l'action est l'édition
...
Case "Annule"
' Si l'action est l'annulation de l'édition
...
Case "Modifie"
' Si l'action est la modification
dim i as integer = Convert.ToInt32(DG_Renvoi.DataKeys(e.Item.ItemIndex))
Case "Supprime"
dim i as integer = Convert.ToInt32(DG_Renvoi.DataKeys(e.Item.ItemIndex))
End Select
End Sub
Cette fois quand je clique sur l'entete des mes colonnes, c'est bien dans la fonction de tri que j'entre
Ce n'est qu'un début de réponse .... ca marche ... c'est bien, mais j'aimerais comprendre, donc si quelqu'un a une explication
Merci encore pour votre aide
|
|
lundi 25 avril 2005 à 10:49:57 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

Yopyop
|
Salut,
Ce serait possible de voir le code de ton datagrid (coté HTML) ?
D'habitude moi je fais: OnDeleteCommand="dgTopics_Delete" OnUpdateCommand="dgTopics_Update" OnEditCommand="dgTopics_EditData" OnCancelCommand="dgTopics_Cancel" OnSortCommand="dgTopics_SortData"
et du côté code behind j'ai une procédure pour chaque chose... ca m'évite d'avoir un big SELECT CASE.
yopyop
|
|
lundi 25 avril 2005 à 10:55:20 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

lucie houel
|
<asp:datagrid id="DG_Renvoi" runat="server" AutoGenerateColumns="False" BorderColor="#999999" HorizontalAlign="Center" BorderWidth="1px" CellPadding="3" GridLines="Vertical" Width="100%" AllowSorting="True"> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="LightSkyBlue"></SelectedItemStyle> <AlternatingItemStyle BackColor="White"></AlternatingItemStyle> <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle> <HeaderStyle ForeColor="White" BackColor="#3596C3"></HeaderStyle> <Columns> <asp:TemplateColumn SortExpression="dtdemande" HeaderText="Date de demande"> <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="10%"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:Label id="LB_DtDemande" runat="server" Text='<%# string.format("{0:d}", DataBinder.Eval(Container, "DataItem.dtdemande")) %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:Label id="LB_DtDemande_Modifie" runat="server" Text='<%# string.format("{0:d}", DataBinder.Eval(Container, "DataItem.dtdemande")) %>'> </asp:Label> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn SortExpression="destinataireDm" HeaderText="Destinataire de la demande"> <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="20%"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:Label id="LB_DestinataireDm" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.destinataireDm") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:Label id="LB_DestinataireDm_Modifie" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.destinataireDm") %>'> </asp:Label> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn SortExpression="destinataireRv" HeaderText="Destinataire du renvoi"> <HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="30%"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:Label id="LB_DestinataireRv" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.destinataireRv") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="DDL_Ville" OnSelectedIndexChanged="SelectionneVille" AutoPostBack="True" runat="server" Width="150"></asp:DropDownList> <asp:DropDownList ID="DDL_Personne" enabled="False" runat="server" Width="220"></asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn> <HeaderStyle HorizontalAlign="Center" Width="10%"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:ImageButton id="IB_Edite" CommandName="Edite" runat="server" ImageUrl="../../img/edit.gif"></asp:ImageButton> </ItemTemplate> <EditItemTemplate> <asp:ImageButton id="IB_Modifie" CommandName="Modifie" runat="server" ImageUrl="../../img/valider.gif"></asp:ImageButton> <asp:ImageButton id="IB_Annule" CommandName="Annule" runat="server" ImageUrl="../../img/cancel.gif"></asp:ImageButton> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn> <HeaderStyle HorizontalAlign="Center" Width="10%"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:ImageButton id="IB_Supprime" CommandName="Supprime" runat="server" ImageUrl="../../img/delete.gif"></asp:ImageButton> </ItemTemplate> <EditItemTemplate> </EditItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid>
|
|
lundi 25 avril 2005 à 11:21:03 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

Yopyop
|
Salut, Pour différencier les événements de ton datagrid tu dois mettre ce que je t'ai montré plus haut: OnDeleteCommand="dgTopics_Delete" OnUpdateCommand="dgTopics_Update" OnEditCommand="dgTopics_EditData" OnCancelCommand="dgTopics_Cancel" OnSortCommand="dgTopics_SortData" Cela t'évite de faire un select case... ensuite tu crées les fonctions associées:
Protected Sub dgTopics_EditData( ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Protected Sub dgTopics_Cancel( ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Protected Sub dgTopics_Update( ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Protected Sub dgTopics_Delete( ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Protected Sub dgTopics_SortData( ByVal sender As Object, ByVal e As DataGridSortCommandEventArgs)
Bon, en ce qui te concerne est-ce que ton DG_Renvoi_ItemCommand s'occupe du tri également ou est-ce que tu as une autre sub pour ca ?
Si c'est une autre, je peux la voir stp ? merci yopyop
|
|
lundi 25 avril 2005 à 11:41:59 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

lucie houel
|
il est vrai que ta méthode est plus claire, mais à priori ca ne remet pas en question la validité de la mienne ? 
sinon le tri est bien géré dans une méthode :
' Permet de charger le datagrid des demandes ' se : expression de tri potentielle
Private Sub AfficheDG(Optional ByVal se As String = "")
' On charge le DataView avec la variable de session contenant les demandes, ' avec renvoi, renvoyées par le moteur de recherche DV_Renvoi.Table = GDTable.InitDemandesAvecRenvoi(VarSession.Demandes) ' On applique le tri If se.Length <> 0 Then DV_Renvoi.Sort = se End If ' On charge le DataGrid DG_Renvoi.DataSource = DV_Renvoi DG_Renvoi.DataKeyField = "identifiant" DG_Renvoi.DataBind() DG_Renvoi.Visible = True TB_Renvoi.Visible = True
Me.AfficheTitres()
End Sub
' Tri du DataGrid Public Sub TriDemandes(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DG_Renvoi.SortCommand Me.AfficheDG(e.SortExpression) End Sub
' Traitement pour chaque action du datagrid déclenchée Public Sub DG_Renvoi_ItemCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG_Renvoi.ItemCommand
...
End Sub
Merci à toi
|
|
lundi 25 avril 2005 à 11:49:46 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

Yopyop
|
re,
est-ce que par hasard quand tu cliques sur un header (pour faire un sort), les 2 méhodes seraient exécutées ?
Genre DG_Renvoi_ItemCommand est exécuté et ensuite TriDemandes (ou l'inverse?)
yopyop
|
|
lundi 25 avril 2005 à 12:09:30 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand
|
lundi 25 avril 2005 à 13:13:10 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

Yopyop
|
t'as fait un debug (step by tep) pour voir.
mais en fait je pense que dim i as integer = Convert.ToInt32(DG_Renvoi.DataKeys(e.Item.ItemIndex)) ne fonctionne pas car quand tu cliques sur un header le datakey doit être null (ou 0).
yopyop
|
|
lundi 25 avril 2005 à 13:24:21 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand
|
lundi 25 avril 2005 à 13:28:24 |
Re : [ASPX][VB.NET] ItemCommand vs SortCommand

Yopyop
|
peut-être simplement parce que les commandes update/delete ne donnent pas d'erreur lorsque tu va chercher l'id (datakey) tandis qu'en le mettant avant ton select case, il va chercher l'id alors qu'elle n'existe pas -> erreur (disfonctionnement).
yopyop
|
|
Cette discussion est classée dans : case, action, dg, renvoi, itemcommand
Répondre à ce message
Sujets en rapport avec ce message
exeption NullReferenceException [ par melda ]
Bonjour,J'aurais besoin d'une aide, après toutes mes recherches infructueuses d'autant plus que je ne sais toujours pas comment utiliser la msdn ;( Je
balise form changement propriété action [ par Markus971 ]
Bonjour,Je débute en ASP.NET et j'ai un petit problème : j'ai créé un formulaire de base compris dans des balises et disposant d'un bouton de type su
equivalent de l'attribut "rel" de la balise <a> en HTML en Action Script 3 [ par Verdan ]
J'essaie d'intégrer une vidéo dans mon site web grâce au plugin Videobox. Cependant, le lien prévu initialement se fait par l'intermédiare de la balis
Comment faire un double tri dans une arraylist [ par PascalCmoa ]
Bonjour à tous,Je viens de réaliser une classe qui me permet de faire un tri sur une arraylist, bon là pas de problème cela fonctionne super bien. Mai
Publipostage avec case à cocher [ par bounette ]
Bonne soirée,Je travail sous XPJ'ai une base de donnée en Access 2000 dans laquelle il y a des champs oui-non<?xml:names
ConfirmButton pour créer des MsgBox [ par dragon ]
Bonjour à tous,je suis en train de créer un MsgBox pour un site web. pour ce faire, j'utilise ConfirmButton de l'API AjaxToolkitLe popup s'affiche trè
controle de case à cocher dans un frame [ par cigalou84 ]
Bonjour à toutes et à tous. Débutant comme beaucoup sur VBa, je bloque sur un code qui, je pense doit être assez simple pour pas mal d'entre vous, mai
Problème silverlight installation [ par hugo7 ]
Bonjour voila mon problème je veux installer le plug-in de silverlight 2 pour visual studio 2008 :http://www.microsoft.com/downloads/details.aspx?Fami
FindControl renvoi toujours null [ par yanis7518 ]
Salut à tousJe crée des controls dynamiquement dans ma page lors du Page_Load que j'ajoute dans un PlaceHolderMyPlaceHolder.Controls.Add(new
Problème de renvoi de données avec un dropdownlist [ par PascalCmoa ]
Bonjour [^^happy13], Je suis en train de sécher sur un problème simple. J'ai un dropdownlist rempli au chargement de la page. Si c'est le premier ch
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : FILEUPLOAD RE : FILEUPLOAD par noux
Cliquez pour lire la suite par noux
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|