2009-05-18 11 views
0

Pouvez-vous lier à une valeur spécifique dans une liste déroulante d'options d'une autre page? En d'autres termes, disons que je suis sur la page 1 et que je veux ancrer le lien à la page 2 qui a une liste déroulante d'options avec 3 valeurs différentes dedans. Disons par défaut lorsque vous allez à la page 2, la boîte déroulante affiche la valeur 1.Lien vers les options déroulantes

Est-il possible de créer un lien vers la page 2 et de modifier la valeur de cette case à la volée? Alors que lorsque vous cliquez sur le lien à la page 1, il affichera automatiquement la valeur 3 au lieu de 1 à la page 2.

Répondre

1

Ceci est certainement possible. Vous pouvez passer un drapeau dans votre chaîne de requête. Donc, sur la page 1, vous avez un lien vers page2 comme "page2.aspx? Option = 3". Ensuite, dans la méthode PageLoad de page2, lisez simplement cette valeur à partir de la chaîne de requête (Request.QueryString["option"]) et définissez l'élément sélectionné du DropDownList de manière appropriée.

Un page1 vous auriez ...

<a href="page2.aspx?option=3">link to page 2</a> 

Dans le codebehind de page2, basée sur l'exemple d'Al ...

void Page_Load(object sender, EventArgs e) { 
    if (!Page.IsPostBack) { 
     int option; 
     if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer 
     ddlList.SelectedIndex = option; 
     } 
    } 
} 
+0

Merci Jon pour votre réponse. Je suis un peu nouveau sur asp.net. Pouvez-vous me donner un échantillon de code pour ce que vous venez de décrire? – arcadian

0

La réponse de Jon Freeland est fondamentalement la façon dont je le ferais . Vous voulez probablement placer le code pour définir l'index de liste dans la classe codebehind dans la fonction Page_Load.

Vous pouvez également enregistrer la valeur de l'option à définir dans la session ASP.Net, mais cela devient un peu plus délicat si vous commencez à laisser l'utilisateur rebondir sur le site. Ils peuvent revenir à la page 2 et conserver la variable de session à quelque chose d'inattendu. En outre, vous risquez de rencontrer des problèmes si la session est supprimée si l'utilisateur est inactif pendant un certain temps ou si le serveur est réinitialisé. Du côté positif, si vous le mettez dans l'objet Session, vous pouvez aller et venir entre vos pages et garder toutes les données dont vous avez besoin à portée de main.

Si vous voulez voir un échantillon, essayer quelque chose comme:


void Page_Load (object sender, EventArgs e) { 
    if (! Page.IsPostBack) { 
    ddlList.SelectedIndex = Request.QueryString["option"] 
    } 

Vous voulez mettre le code dans la section IsPostBack afin qu'il ne fonctionne que la première fois que l'utilisateur est dirigé vers la page! .

Questions connexes