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 :

GridView - redirection avec paramètre


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut GridView - redirection avec paramètre
    Bonjour

    Je suis en train de développer une interface d'administration gérant des utilisateurs (entre autre). On pourra donc supprimer, ajouter et modifier des utilisateurs.
    Ma base de données Utilisateur est très complexe (beaucoup de colonnes), j'en affiche une partie dans mon GridView et permet donc de modifier quelques informations.
    Je ne peux pas les mettre toutes (ça prend trop de place, ce serait pas pratique), donc, j'aimerais mettre un autre bouton (en plus de celui de modification et de suppression) qui serait un bouton "Modification avancée" et qui permettrait de tout modifier en redirigeant l'administrateur vers une autre page qui gère la modification.
    J'ai réussi à intégrer le bouton de le GridView donc il suffit de changer le PostBackUrl et le tour est (presque) joué.

    Mon problème : je ne sais pas comment récupérer l'identifiant de l'utilisateur associé au bouton sur lequel on clique.
    Je pensais pouvoir faire : PostBackUrl="page.aspx?id=@idUtil" mais là, le paramètre vaut la chaine "@idUtil".

    Voici le code grandement simplifié de la partie concernée, les points représentent la simplification (pas la peine de mettre la balise Columns ^^) pour éviter que ce soit trop lourd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataKeyNames="idUtil" DataSourceID="SqlDataSource1">
    ................
         <asp:BoundField DataField="idUtil" HeaderText="Identifiant" 
    ReadOnly="True" SortExpression="idUtil" />
    ................
         <asp:TemplateField HeaderText="Modification avancée" ShowHeader="False" 
    SortExpression="idUtil">
            <ItemTemplate>
               <asp:Button ID="BP_ModifAv" runat="server" 
    CausesValidation="False" CommandName="Modif" Text="Modifier en détails 
    l'utilisateur" PostBackUrl="modif_util.aspx?id=..."/>
            </ItemTemplate>
         </asp:TemplateField>
    ...............
    </asp:GridView>
    Tout ce que je voudrais c'est ajouter l'identifiant de l'utilisateur en cours dans le PostBackUrl mais si vous avez d'autres idées qui permettre à peu près la même chose, je suis preneur.

    Je vous remercie par avance de vous pencher sur mon problème =)

  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
    Tu fait

    ="modif_util.aspx?id={0}"

    Et du définit DataKeyName='Pseudo'...


    Voili voilou

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Citation Envoyé par p_mehdi Voir le message
    Tu fait

    ="modif_util.aspx?id={0}"

    Et du définit DataKeyName='Pseudo'...
    Je te remercie beaucoup de ton aide mais ça ne marche pas
    dans la page modif_util, id vaut la chaine "{0}"

    le ="modif_util.aspx?id={0}" il faut bien le mettre dans PostBackUrl ?
    et il faut mettre DataKeyNames='idUtil' dans le gridView ? c'est bien ça ?

    si c'est bien ce qu'il faut faire, ça ne marche pas
    si ce n'est pas ça, tu pourrais être plus précis stp

    Merci p_mehdi d'essayer de m'aider

    si quelqu'un d'autre a des idées, n'hésitez pas ^^

  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
    J'avais pas vu ton code jusqu'au bout...

    En fait soit tu passes par un hyperlinkfield.

    ou tu remplis la zone DataNavigateUrlFormatString="~/modif_util.aspx?id={0}"
    et DataNavigateUrlFields="Pseudo" , Pseudo doit être dans ton Datakeyname au niveau du gridview..

    Soit tu fais un bouton et dans ce cas tu captes l'évennement Onclick et tu fais un redirect.

    Après il y a sûrement d'autres solutions...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Merci énormément p_mehdi !!!!

    Grâce à ce que t'as dit (et en farfouillant un peu) j'ai trouvé comment le faire exactement comme il fallait =)

    si ça intéresse certains, voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:TemplateField HeaderText="Modification avancée" ShowHeader="False" 
    SortExpression="idUtil">
         <ItemTemplate>
            <asp:Button ID="BP_ModifAv" runat="server" CausesValidation="False"
             CommandName="Modif" Text="Modifier en détails l'utilisateur"
             PostBackUrl='<%# Eval("idUtil", "~/modif_util.aspx?id={0}") %>'/>
         </ItemTemplate>
    </asp:TemplateField>
    Merci encore p_mehdi, tu m'as sauvé la vie

  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
    N'exagérons rien mais au moins ca fait plaisir de voir quelqu'un de content...

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    Bonjour,
    je voulais faire la mème chose mais ca marche pas dans mon code .

    voila l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Description: The type of page you have requested is not served because it has been explicitly forbidden.  The extension '.ascx' may be incorrect.   Please review the URL below and make sure that it is spelled correctly.
     
    Requested URL: /EPM/DesktopModules/GFP/Modif.ascx


    oui j'utilise des pages ascx.


    qu'est ce que vous en pensez ?

    merci pour votre aide !

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    Bjr,
    svp pourriez vous me dire svp comment faire dans le cas ou je voudrais faire la redirection vers un formulaire dans la mème page.
    je veux faire la modification a partir de l'id retourné.


    merci d'avance pour votre aide .

  9. #9
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Pas évident de t'aider avec le peu d'information que tu donnes ...

    Publies ton code stp avec la balise de code.

    edit : avec un poil de recul, tu serais pas en train d'appeler un contrôle ascx au niveau de ton menu général non ?

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    Ok voila une partie du code qui contient le boutton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <telerik:GridTemplateColumn UniqueName="TemplateColumn" HeaderText="Modification">
             <ItemTemplate>
                    <asp:Panel ID="Panel1" runat="server">
                            <asp:Button ID="BP_ModifAv" runat="server" CausesValidation="False" CommandName="Modif" Text="Modifier en détails le projet" PostBackUrl='<%# Eval("ProjetID", "~/default.aspx?id={0}") %>'/>
                       </asp:Panel>
              </ItemTemplate>
     </telerik:GridTemplateColumn>
    j'utilise le CMS DotNetNuke,alors ce code est insérer dans une page ascx,mais lors de l'exécution c la page default.aspx qui est affichè(ca c un autre souci)

  11. #11
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Quand tu appelles ta page default.aspx, ton gridview affiche-t-il quelque chose ? Si oui quel est alors précisement le pb.

    Sinon il est normal que l'on appelle une page .aspx parce que si tu appelles une contrôle .ascx comme une page tu obtiens l'erreur que tu mentionnais plus haut. Un contrôle .ascx va dans une page .aspx.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Description: The type of page you have requested is not served because it has been explicitly forbidden.  The extension '.ascx' may be incorrect.   Please review the URL below and make sure that it is spelled correctly.
     
    Requested URL: /EPM/DesktopModules/GFP/Modif.ascx

  12. #12
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    G modifier le chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PostBackUrl='<%# Eval("ProjetID", "~/EPM/Projet/tabi/56/Default.aspx?id={0}")%>'/>
    mnt il me renvois sur la mème page mais sans aller exaxtement au formulaire :
    (le formulaire est un tableau contenant des label,textbox et des combo)

  13. #13
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    je pense que je px resoudre ce prob si j'arrive a rendre visible le formulaire qu'au moment du click sur le bouton de modif inclus dans le gridview.

    mais j'arrive pas a acceder à l'evenement du click de ce bouton .

    vous avez une idèe ??

  14. #14
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    donc si tu regardes l'url de ta page après avoir cliqué sur une ligne du gridview --> http:www.monsite.com/.../...Default.aspx?id=??

    id possède-t-il une valeur ?

  15. #15
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    oui ca marche,il renvoie le num de l'ID que j'ai declarè comme datakeynames.
    mais comme ce que je viens de te dire je pense que la meilleur solution serai de controler l'evenement du click sur le bouton inclus dans le radgrid.
    sais tu cmt faire stp ??

  16. #16
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Oui, alors je t'oriente vers un post d'aujourd'hui concernant exactement le même problème.

    http://www.developpez.net/forums/d74...incompatibles/

    Bonne lecture

  17. #17
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    merci predalpha .
    j'ai utilisé la pour controler l'affichage
    je voulais te poser une question stp,en utilisant cette manière je voulais eviter une erreur que j'ai depuis un mois :
    Selection out of range Parameter name: value

  18. #18
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut


    Manque un mot là ???

    Pas compris tout ton post. Donnes plus de code sur ton gridview si c'est lui qui pose pb.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Selection out of range Parameter name: value
    ça veut dire que tu as un tableau dont tu dépasses l'index maximum je crois

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    tab(0) = " "
    tab(1) = "a"
    tab(2) = "b"
    tab(3) = "c"
    tab(4) = "d"
    for i as integer = 0 to tab.Count
     Response.Redirect(tab(i))
    next
    ce code fera une erreur parce que tab.Count vaut 5, ça va donc essayer d'atteindre tab(5) qui n'existe pas

    c'est peut-être ça ton problème, donne plus de code pour qu'on puisse t'aider davantage ^^

  20. #20
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 122
    Par défaut
    je ne sais pas mais concernant ce soucis, il ma suffit de supprimer kelke ligne de code pour qu'elle disparaisse.

    mais la le souci que j'ai,c celui que j'avais avant...
    en fait g integrer un bouton de modification dans mon Radgrid...il me renvoi vers un formulaire dans la mème page en prenant comme paramètre l'id de ma table...

    le panel contenant le formulaire est invisible par defaut ,

    mnt ce que j'ai fais c que dans le page_load :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    protected void Page_Load(System.Object sender, System.EventArgs e)
            {
         try
                {
     
            if (Request.Params["id"] == null)
            {
            Panel2.Visible = false;
            }
        else
             {
     
                 consultation cons = new consultation();
                 GFPController crl = new GFPController();
                 cons = crl.GetProjetID(Convert.ToInt32(Request.Params["id"]));
                 RadTextBox4.Text = cons.PNom;
     
                 RadDatePicker2.SelectedDate = cons.StartDate;
                 RadDatePicker3.SelectedDate = cons.EndDate;
                 RadComboBox1.SelectedValue = cons.TypeDeID.ToString();
                 RadNumericTextBox1.Text = cons.Progression.ToString();
                 RadComboBox2.SelectedValue = cons.PrioriteID.ToString();
     
     
     
     
                Panel2.Visible = true;
                Panel3.Visible = false;
     
     
        }
    }
                catch (Exception exc) //Module failed to load
                {
                    Exceptions.ProcessModuleLoadException(this, exc);
                }
     
            }

    je sais que c po la meilleur facon de faire mais ca marché.

    mnt lors de la modification,lorsque je clique après sur le bouton edit :

    la modification ne se fais pas pcq la page est rechargé tjs avec les anciens paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
            protected void Psave_Click(object sender, EventArgs e)
            {
     
     
                consultation cons = new consultation();
                GFPController crl = new GFPController();
     
                cons.ProjetID=(Convert.ToInt32(Request.Params["id"]));
                cons.PNom = RadTextBox4.Text;
                cons.Demande = RadTextBox5.Text;
                cons.TypeDeID = Convert.ToInt32(RadComboBox1.SelectedValue );
                cons.BReel = float.Parse( RadTextBox10.Text);
                cons.EndDate = Convert.ToDateTime(RadDatePicker3.SelectedDate);
                cons.StartDate =  Convert.ToDateTime(RadDatePicker2.SelectedDate);
                cons.CreationDate = Convert.ToDateTime(RadDatePicker1.SelectedDate);
                cons.Risques = RadTextBox9.Text;
                cons.PrioriteID = Convert.ToInt32(RadComboBox2.SelectedValue);
                cons.ProcessID = Convert.ToInt32(RadComboBox6.SelectedValue);
     
     
     
               crl.UpdatePrjt(cons);
    je vois pas trop comment faire pr controler tt ca et resoudre ce problème....quelqu'un aura-t-il une idèe ?

    merci d'avance pr votre aide

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

Discussions similaires

  1. Aide urlrewriting / redirection avec paramètres
    Par loloing dans le forum Apache
    Réponses: 1
    Dernier message: 18/01/2009, 14h22
  2. redirection avec paramètre
    Par mademoizel dans le forum ASP
    Réponses: 2
    Dernier message: 14/01/2008, 22h19
  3. Redirection avec paramètre (GET)
    Par gufra dans le forum JSF
    Réponses: 4
    Dernier message: 06/11/2007, 15h10
  4. Redirection avec paramètres pour la vue
    Par sir_gcc dans le forum Zend Framework
    Réponses: 2
    Dernier message: 16/10/2007, 21h12
  5. [Struts]Redirection avec paramètre
    Par klereth dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/06/2005, 10h56

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