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 :

Passage de paramettre


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut Passage de paramettre
    Bonjour,
    j'ai un dropdownlist à l'interieur d'un DataList. Tous les deux lié à une SqlDataSource.
    J'ai également une url qui contient une variable passé en paramétre.
    J'aimerai que la page se recharge quand je change le dropdownlist et que la variable de l'url prend la valeur du dropdownList.

    Je bloque, que dois-je faire?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut
    Salut,

    Tu a essayé de mettre la propriété AutoPostBack de ta DropDownList à true?

    Sinon je ne suis pas sur d'avoir compris ta question, mais si tu veux récupérer la valeur selectionnée dans la DDL, tu peux utiliser la propriété SelectedValue pour obtenir sa valeur ou SelectedItemIndex pour récupérer son index.

    L'evènement SelectedIndexChanged est déclenché lorsque l'on change la valeur de la DDL.

    Pense aussi à activer l'état d'affichage (propriété EnabledViewState si je me souviens bien) pour que les valeurs soit gardées lors du rechargement de la page

    plus d'infos :
    http://msdn.microsoft.com/fr-fr/libr...ck(VS.80).aspx

    http://msdn.microsoft.com/fr-fr/libr...rs(VS.80).aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    Oui la propriété est déjà à true mais après dans le behind j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protectedvoid ListModel_SelectedIndexChanged(object sender, EventArgs e)
    {
    Request.QueryString["do"]= ListModel.SelectedItemIndex.Value;
    }
    Mais il ne reconnait pas ListModel qui est l'ID de mon DropDownList.
    La variable dans l'URL est "do".
    Ce que je voulais expliquer dans mon premier message c'est que dans l'affichage d'un DataList je rajoute un DropDownList qui est lié à sa propre SqlDataSource. Alors je me demande si il y un problème de portabilité dans ce cas

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut
    erf ouai j'ai eu le même problème aussi,

    Normalement tu doit pouvoir régler le problème simplement avec du code asp, mais je n'ai jamais trouvé comment.

    Asp.net crée un espace de nom pour chaque controle, ca veut dire que quand tu veux récupérer l'id de ta DDL, il ne la trouve pas dans la page, car elle se trouve dans une cellule de ta DataGrig, et non dans la page, asp trouve bien ton DataGrid Dans la page, mais pas les controles qui se trouvent dans le DataGrid

    Je ne sais pas comment ca fonctionne avec le DataGrid, mais avec un GridView, tu peu faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    protected void GridView_SelectedItemChanged(object sender, GridViewUpdateEventArgs e)
    {
    DropDownList MonDDL = (DropDownList)MonGridView.Rows[e.RowIndex].Cells[2].FindControl("ListModel");
    MaValeur = MonDDL.SelectedValue;
     
    }
    (Cells[2] permet d'accéder à la troisième colonne, il faut mettre l'index de la colonne ou se trouve ta DDL )
    e.RowIndex indique l'index de la ligne ou la modification à été effectuée.

    Par contre je doute que tu puisse modifier l'objet Request, d'ailleurs la doc d'msdn indique "Obtient la collection des variables chaîne de requête HTTP " et non "obtient ou défini".

    Lorsqu'un utilisateur envoie une requete a ton serveur, le serveur ecrit un objet HttpResponse correspondant à cette requete (si on envoie http://monsite/mesphotos.aspx alors on écrit la page des photos dans l'objet response ) et le renvoie au client, tout ce que tu code ensuite dans se produit entre ses 2 evènements.

    Donc si ton utilisateur t'envoie une requete, l'objet Request auquel tu accède dans ta page représente la requête mais ne peut pas (ne doit pas) etre modifié, c'est la requete que t'envoie l'utilisateur, tu ne peut pas la modifier.

    tu peu par contre modifier la page de destination avec

    Response.Redirect("http://monsite.com/?do=" + MaValeur, true);

    C'est a dire que tu redirige ton utilisateur vers une nouvelle url, true indique que l'execution de la page doit s'arreter et rediriger immediatement, si tu met false le cycle de vie de ta page sera effectué avant la redirection.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    Bonjour, j'ai suivi ton conseil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    publicstring lareference;
     
    protectedvoid ListModel_SelectedIndexChanged(object sender, EventArgs e)
    {
    DropDownList MonDDL = (DropDownList)DataFicheArticle.FindControl("ListModel");
    lareference = MonDDL.SelectedItem.Value.ToString(); //ligne 41
    Response.Redirect("http://article.aspx?do=" + lareference, true); 
    }
    
    
    Et j'ai le message d'erreur suivant :
    L'exception System.NullReferenceException n'a pas été gérée par le code utilisateur
    Message="La référence d'objet n'est pas définie à une instance d'un objet."
    Source="App_Web_8253p89z"
    StackTrace:
    à article.ListModel_SelectedIndexChanged(Object sender, EventArgs e) dans d:\Mes Documents\Visual Studio 2008\WebSites\kiki\article.aspx.cs:ligne 41

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut
    EffectivementLa DataList ne semble pas fonctionner comme le gridView a ce niveau la


    FindControl te renvoie null si il ne trouve pas le controle, si tu cherche ensuite à acceder à une propriété d'une valeur null, l'exception NullReferenceException est gérée.

    Commence par verifier que le controle est trouvé (soit le controle est reference null, soit c'est la propriété selectedvalue qui l'est, alors c'est l'appel de tostring qui genere une exception) en inserant la ligne suivante apres le findControl :

    if(MonDDL != null)
    {
    System.Windows.Forms.MessageBox.Show("DDl introuvable");
    } else ....


    Sinon tu a mis quoi coté asp?

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

Discussions similaires

  1. [WD17] Passage de paramettre RVB
    Par dany13 dans le forum WinDev
    Réponses: 5
    Dernier message: 18/03/2013, 10h37
  2. passage de paramettres Apache -> servlet
    Par omcougar dans le forum Services Web
    Réponses: 0
    Dernier message: 05/10/2008, 12h03
  3. [image & passage de paramettre] Sos svp !
    Par maximus001ma dans le forum JSF
    Réponses: 10
    Dernier message: 23/08/2007, 15h35
  4. Réponses: 6
    Dernier message: 10/06/2007, 13h33
  5. Probleme jsp passage de paramettres
    Par rafounette dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 17/11/2006, 16h43

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