IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Un GridView qui veut pas suppirmer


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Un GridView qui veut pas suppirmer
    Salut tout le monde.

    J'ai un GridView un peu récalcitrant depuis quelques jours.
    Le bonhomme s'est mis en tête de ne plus supprimer les choses !

    Et surtout, je ne comprends pas pourquoi il me blaance les inssanité qu'il me jette en travers de la tronche. Vous allez comprendre en voyant le code. Moi j'ai lu, relu et ratalu et j'ai rien trouvé de bizarre.

    Côté HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:SqlDataSource ID="sdsListeMenu" runat="server" ConnectionString="<%$ ConnectionStrings:DataDev %>"></asp:SqlDataSource>
    <asp:GridView ID="gvListeMenu" runat="server" DataSourceID="sdsListeMenu"></asp:GridView><br /><br />
    CodeBehind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With sdsListeMenu
    			.SelectCommandType = SqlDataSourceCommandType.Text
    			.UpdateCommandType = SqlDataSourceCommandType.Text
    			.DeleteCommandType = SqlDataSourceCommandType.Text
                .SelectCommand = "EXEC ListeMenu '" & GetApplicationGUID().ToString & "'"
                .UpdateCommand = "UPDATE Menu SET Nom_Menu = @Nom_Menu WHERE Id_Menu = @Id_Menu"
                .DeleteCommand = "DELETE Menu WHERE Id_Menu = @Id_Menu"
    		End With
    		With gvListeMenu
    			.AutoGenerateEditButton = True
    			.AutoGenerateDeleteButton = True
            End With
    Message d'erreur lorsque je clique sur le lien "Suppirmer" :
    La variable scalaire "@Id_Menu" doit être déclarée.
    Mais où je la déclare sa bondieu de variable qu'il a déjà pour le reste du fonctionnement ?

    Vous pouvez m'aider, il ne me reste plus beaucoup de cheveux sur la tête.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Normal si tu déclares pas ton sqlparameter..

    Soit tu le déclares dans le sqldatasource entre les balises

    <UPDATEPARAMETER>
    et
    <DELETEPARAMETER>

    soit tu fait un command.add.parameter dans le codebehind....

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ben c'est là que je comprends pas. Le UPDATE il marche tout seul, lui.
    Pourquoi le DELETE n'en fais pas autant ?

    Et surtout, moi je veux bien rajouter du code, mais comment on fait cette déclaration ? Parce que j'ai relu la MSDN et je capte pas ce qu'il faut faire.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Si t'as copié tout le code je vois pas comment ca peut marcher


    Sinon déclaration dans le sqldatasource.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <DeleteParameters>
                        <asp:ControlParameter Name="OrderID" ControlId="DropDownList1" PropertyName="SelectedValue" />
    </DeleteParameters>
    Ensuite tu adapte ton paramètre en fonction de la ou tu récupère ton ID...

    Depuis le code behind je peux pas trop t'aider moi je suis plus C#..

    mais en gros tu fait un add parameter dans ton sqldatasource..
    Puis tu alimentes la valeur de ce paramètre...

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Au niveau code, la seule chose que je n'ai pas postée ici c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	Protected Sub gvListeMenu_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvListeMenu.RowCommand
    		Select Case e.CommandName
    			Case "Edit"
                    sdsListeMenu.SelectCommand = "EXEC ListeMenu '" & GetApplicationGUID().ToString & "'"
    		End Select
    	End Sub
    Mais la Proc Stock ne fait qu'un simple Select et je ne fais cela que pour recharger le GridView et le mettre à la jour à l'affichage. Du coup, la question reste là : le Update, ça marche et pas le DElete

    Ensuite, ajouter le DeleteParameter, je veux bien. Maintenant que je commence à comprendre ce qu'il attend en entrée. Sauf que, dans ton exemple, tu vas chercher une valeur qui se trouve dans une DDL qui serait là. Moi, j'en ai pas. Je n'ai que le GridView. Du coup, je ne sais pas comment alimenter la valeur du paramettre.

    Pour le CodeBehind, envoi en C#. Grâce à la pression de LuteceFalco, j'ai fini par m'y mettre un peu, du coup je comprend un peu et y a de trés bons traducteur en ligne.

    Et merci pour ton aide.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Ajout d'un parameter en code behind.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     SqlDataSource.DeleteParameters.Clear();
     SqlDataSource.DeleteParameters.Add("toto", Id_Menu);

    Sinon dans l'asp pour répondre a ta question tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <asp:Parameter Name="Id_Menu" Type="leType" />
    Si ton datafield s'apelle Id_Menu dans ton gridview il va te le lier automatiquement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PB de focus qui veut pas y aller
    Par zooffy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/10/2006, 12h01
  2. [RegEx] str_replace qui veut pas replacer
    Par lamoufle dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 12h37
  3. ShellExecute qui veut pas faire son boulot...
    Par giloutho dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 31/08/2005, 11h49
  4. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo