2010-11-24 7 views
1

Simple question, mais j'ai un sentiment lancinant qu'il ya une solution plus intéressante que celle que j'ai choisi:Appelez un gestionnaire d'événements sur une autre page

Page deux se compose d'un menu déroulant, et le changement l'événement est géré pour exécuter une requête.

protected void ddlSavedQueries_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    /* stuff happens */ 
} 

Page One est une page d'accueil, où je fournir une autre version de ce menu déroulant. Je voudrais que l'événement de changement dans ce cas redirige le contrôle à Page deux, et puis exécute le gestionnaire d'événements.

Ma solution bon marché est juste une redirection avec une valeur de chaîne de requête qui est gérée au chargement de la page. Ai-je manqué une approche plus intéressante?

+0

Votre solution résume bien dans mes yeux. Ou vous pouvez utiliser un hash (#) et un javascript difficile pour le lire, déclencher un événement de changement, puis laisser ASP le prendre à partir de là. –

Répondre

2

Si vous ne voulez pas de vilaines choses avec une valeur querystring, je suppose que vous pourriez mettre quelque chose dans Session et ramasser sur Page_Load de la deuxième page (et clairement hors de Session). Pas exactement une amélioration géniale cependant.

+0

Merci - après avoir regardé autour, je pense que ces variations sur l'approche de redirection sont tout ce qui est disponible. – LesterDove

1

La même page s'affiche-t-elle toujours lorsque vous modifiez cette liste déroulante? Si c'est le cas, pensez à utiliser javascript côté client pour rediriger vers la page correcte, puis déclenchez toute logique sur la page suivante dans l'événement page_load. Exemple d'utilisation jQuery:

$(function() { 

    $("select.classyouneedtodefine").change(function() { 
     document.location.href = "somepage.aspx?value=" + $(this).val(); 
    }); 

}); 

ont pas testé ci-dessus ... tir juste de la hanche

+0

Merci - après avoir regardé autour, je pense que ces variations sur l'approche de redirection sont tout ce qui est disponible. – LesterDove

Questions connexes