OVH Cloud OVH Cloud

rajoutter une var automatiquement à l'url

4 réponses
Avatar
herve
Bonjour,

J'ai des urls que je compose manuellement tout le long de l'application
du type:
www.nom-domaine.com/?rub=site
www.nom-domaine.com/?rub=site&id=1

Je voudrai rajouter automatiquement à un seul endroit la langue qui est
contenu dans une var de session pour avoir
www.nom-domaine.com/?rub=site&id=1&lang=fr

Je crois que c'est possible mais pas ou le faire ni comment.
Merci de votre aide et si possible en vb.
hervé

4 réponses

Avatar
Messenger of the red snake mountain
"herve" wrote in message > Bonjour,

J'ai des urls que je compose manuellement tout le long de l'application
du type:
www.nom-domaine.com/?rub=site
www.nom-domaine.com/?rub=site&id=1

Je voudrai rajouter automatiquement à un seul endroit la langue qui est
contenu dans une var de session pour avoir
www.nom-domaine.com/?rub=site&id=1&lang=fr

Je crois que c'est possible mais pas ou le faire ni comment.
Merci de votre aide et si possible en vb.
hervé



Bonjour,

Pour ma part, je contrôle le contenu de la querystring directement depuis
l'instance de classe 'Page'. J'y ai ajouté une propriété publique chargée de
compléter la querystring si nécessaire:

public string NextQueryString
{
get {return(this._nextQuerystring);}
set
{
if(!(this._nextQuerystring.IndexOf(value) >= 0))
this.nextQuerystring += value;
}
}


Et dans le code cela donne quelque chose comme:

Page.NextQueryString = "mod=wlc";

La propriété se charge d'ajouter à la querystring uniquement les valeurs
n'y étant pas déjà insérées (juste au cas où, vu que j'ai souvent pas mal
de contrôles chargés à droite et à gauche).

Finalement, je créé mes liens toujours en ajoutant la propriété:

"default.aspx?" + Page.NextQueryString + parametreseventuels

Dans le cas de la langue et ce genre de paramètres standards à toutes
les pages, effectivement il y aurait la variable de session ou encore un
remplissage des variables de base lors du Page_Init de la web form.

.antoine



--





------------oOoo---Ôô----ooOo---------------------------
Antonio FONTES (well, me, actually)
http://www.nxtg.net/saphyr/ (tout et rien en français)
http://www.nxtg.net/is/ (blog - développeur web)
E-mail:
-------------------------------------------------------------
Avatar
herve
>
Bonjour,

Pour ma part, je contrôle le contenu de la querystring directement depuis
l'instance de classe 'Page'. J'y ai ajouté une propriété publique chargée de
compléter la querystring si nécessaire:

public string NextQueryString
{
get {return(this._nextQuerystring);}
set
{
if(!(this._nextQuerystring.IndexOf(value) >= 0))
this.nextQuerystring += value;
}
}


Et dans le code cela donne quelque chose comme:

Page.NextQueryString = "mod=wlc";

La propriété se charge d'ajouter à la querystring uniquement les valeurs
n'y étant pas déjà insérées (juste au cas où, vu que j'ai souvent pas mal
de contrôles chargés à droite et à gauche).

Finalement, je créé mes liens toujours en ajoutant la propriété:

"default.aspx?" + Page.NextQueryString + parametreseventuels

Dans le cas de la langue et ce genre de paramètres standards à toutes
les pages, effectivement il y aurait la variable de session ou encore un
remplissage des variables de base lors du Page_Init de la web form.

..antoine



Bonjour,

J'ai essayé en installant NextQueryString dans le code behind de ma page
aspx et celà ne fonctionne pas. Mais peut-être veux-tu dire par
l'instance de classe 'Page' une class dans lequel tu mets tes var.
communes et dont tu fais dériver le code behind de tes pages!?

En fait je cherchai plus dans la direction d'une surcharge d'une méthode
qui me retournerait l'url complète juste avant le rendu, car en fait ta
solution oblige à compléter tous les endroits "default.aspx?" +
Page.NextQueryString et moi j'en ai pas mal.

Hervé
Avatar
Messenger of the red snake mountain
> J'ai essayé en installant NextQueryString dans le code behind de ma page
aspx et celà ne fonctionne pas. Mais peut-être veux-tu dire par
l'instance de classe 'Page' une class dans lequel tu mets tes var.
communes et dont tu fais dériver le code behind de tes pages!?



En fait je cherchai plus dans la direction d'une surcharge d'une méthode
qui me retournerait l'url complète juste avant le rendu, car en fait ta
solution oblige à compléter tous les endroits "default.aspx?" +
Page.NextQueryString et moi j'en ai pas mal.



Le fait d'implémenter une nouvelle classe héritant de Page et de créer
toutes les pages sur cette propre classe serait intéressant si tu utilises
une architecture de site avec plusieurs pages aspx.

Dans mon cas, je fonctionne usuellement avec une seule page 'default.aspx'
qui elle-même charge les contrôles utilisateurs ascx selon le module
demandé.

Il ne m'a donc pas été nécessaire de créer une classe héritant de Page.
Si tu as plusieurs pages aspx, effectivement c'est ce que tu devras faire.

Sinon, tu as sûrement fait une petite erreur de distraction toute bête = )

En placant la propriété dans ta page aspx, la default.aspx par exemple,
la propriété devient un membre de la classe _default et non 'Page'.

Lorsque tu demandes une référence depuis le contrôle à la page parente,
avec 'this.Page' , tu obtiens une instance dans l'IDE de type 'Page'. C'est
normal que la propriété ne soit pas indiquée. Il faut donc préciser la classe ,
à l'aide d'un casting par exemple:

((_default)this.Page).NextQueryString = "blabla";

En espèrant avoir répondu...

.antoine


--





------------oOoo---Ôô----ooOo---------------------------
http://www.nxtg.net/saphyr/ (blog perso)
http://www.nxtg.net/is/ (blog - fr - communication web)
http://dotnetjunkies.com/weblogs/afontes/ (blog - fr - communication web)
E-mail:
-------------------------------------------------------------
Avatar
herve
Merci d'avoir pris le temps de compléter ta réponse.
Mais pour des questions de temps j'ai du appliquer la méthode lourde
mais basique.
Hervé