2009-03-17 7 views
0

J'ai une zone de texte et un bouton sur un formulaire sur default.aspx et dans mon DownloadHandler.ashx je reçois la valeur dont j'ai besoin de HttpContext.Request.Form (" txtURI "):ajouter querystring à une propriété postbackurl de asp: bouton

  <asp:TextBox ID="txtURI" 
         AutoPostBack="true" 
         runat="server"></asp:TextBox> 
      <asp:Button ID="DownloadButton" 
         PostBackUrl="~/DownloadHandler.ashx" 
         runat="server" 
         Text="Download"/> 

Je voudrais changer de sorte que la valeur saisie dans la zone de texte est transmis au DownloadHandler.ashx comme querystring (au lieu de la cueillette hors de la Request.Form).

Quelle est la meilleure façon d'y parvenir?

Répondre

1

Je pense que vous avez répondu à votre propre question. Je crois que vous allez devoir prendre la demande et la rediriger.

En fait, plus j'y pense. Vous pouvez ajouter un OnClientClick en appelant une fonction javascript qui récupèrerait la valeur du champ et la soumettrait. Je voudrais juste le faire serverides cependant.

+0

Je ne sais pas ce que vous voulez dire "ramasser sur la demande". Comment ajouter une chaîne de requête appropriée à PostBackURL? –

+0

La page s'afficherait de nouveau sur elle-même (comportement par défaut), puis dans votre code-behind, vous devrez saisir la valeur txtURI.Text, l'ajouter à l'URL que vous souhaitez publier et faire un Response.Redirect ou un Server.Transfer(). En fonction de ce que vous allez faire. – madcolor

0

Vous pouvez également utiliser le nom du paramètre de commande et la valeur du paramètre de commande dans votre bouton et ainsi transmettre la valeur dont vous avez besoin.

<asp:Button ID="DownloadButton" 
    CommandName="Download" 
    CommandArgument="whatever_argument_or_value" OnCommand="Download_Command" 
    runat="server" Text="Download" 
/> 
+0

Est-ce que cela va mettre la commande dans la chaîne Querystring? – madcolor

+0

Non, mais passera le nom de la commande et le paramètre à la fonction Download_Command. Je sais que ma réponse n'est pas ce que vous avez demandé, c'est juste une autre façon de mettre le paramètre en fonction. – Dmitris

+0

Je viens de réaliser que vous avez demandé quelque chose de complètement différent, désolé. – Dmitris

Questions connexes