2011-02-09 10 views
0

私にはハイパーリンクの画像があります。イメージをクリックした後、サーバー側からリダイレクトするための "searchRedirect"関数にどのようにアクセスすればよいですか?どのようにリダイレクトしますか?

<input id="textSearch" runat="server" name="textSearch" type="text" /> 
<asp:HyperLink id="searchButton" runat="server"> 
     <img alt="" src="images/SearchButton.png"/> 
</asp:HyperLink> 

protected void searchRedirect() 
{ 
    Response.Redirect("/NewProject/Home/?searchString=" + textSearch.Value; 
} 

答えて

5

むしろハイパーリンクよりも、あなたはLinkBut​​tonコントロールを使用し、そのClick event

<input id="textSearch" runat="server" name="textSearch" type="text" /> 
<asp:LinkButton id="searchButton" runat="server" OnClick="searchRedirect"> 
     <img alt="" src="images/SearchButton.png"/> 
</asp:LinkButton> 

protected void searchRedirect(sender As Object, e As EventArgs) 
{ 
    Response.Redirect("/NewProject/Home/?searchString=" + textSearch.Value); 
} 

アルKeppはこのようにそれをやっては実現するだけで戻って投稿するページを引き起こすことを示唆されたため聞きしたいと思いますリダイレクトは不要なページの読み込みにつながります。下記のようなJavaScriptのバージョンが戻って最初のポストを避けるだろう:

<input id="textSearch" runat="server" name="textSearch" type="text" /> 
<a href="#" onclick="window.location='/NewProject/Home/?searchString=' + getElementById('textSearch').value; return false;"> 
     <img alt="" src="images/SearchButton.png"/> 
</a> 

を私は実際にそのコードをテストしていないが、私はタイプミスを持っていないと思います。

+0

を使用しない限り、これは動作しますが、コントロールのクライアントIDを変更しますので、私は、セレクタとしてのCSSクラスを使用してjQueryの

<input id="textSearch" class="textSeachClass" runat="server" name="textSearch" type="text" /> <asp:HyperLink id="searchButton" CssClass="searchButtonClass" runat="server"> <img alt="" src="images/SearchButton.png"/> </asp:HyperLink> <script type="text/javascript"> // This code should be put in a separate .js-file so it can // be cached and the aspx page will be more SEO-friendly $("a.searchButtonClass").click(function (e) { e.preventDefault(); window.location = "/NewProject/Home/?searchString=" + $("input.textSeachClass").val(); }); </script> 

を使用した例ですリダイレクトをすることが本当にここで欲しいものだと確信していますか?ページを2回送信します。私はaffraid user54197実際にこのようなリダイレクトは必要ありません。 –

+0

@Al Kepp。あなたは転送を提案していますか? – MrM

+0

javascriptのバージョンと説明を含むように編集 –

1

クライアント側でコードを実行する唯一の方法であるため、JavaScriptで記述してください。それはあなたが望むように正確に動作するために必要です。

Nick Spiers氏によると、LinkBut​​tonを使用してください。その場合、urlアドレスにはtestSearch.Valueが表示されません。 (それはしばしばいいですが、そこに見たい場合は、JavaScriptで書くことが最善です)。しかし、Nick Spierのコードとは異なり、リダイレクトコマンドを省略して必要な検索アクションを直ちに実行します。 (リダイレクトは2ページをクライアントに送信するため、ユーザーが通常は検索ボタンを押したときに期待されるものではありません)。

+0

転送を提案していますか? – MrM

0

または、JavaScriptを使用してサーバーへの余分な往復を取り除くことができます。ここでは、それらがレンダリング得るときASP.Net Webフォームを使用すると、.NET Frameworkの4

関連する問題