2009-03-02 21 views
1

asp:ハイパーリンク内にasp:ボタンがあります。 Firefoxでボタンをクリックすると、asp:ハイパーリンクで指定された正しいURLに移動しますが、Internet Explorerのボタンをクリックすると、同じページにとどまります。私は問題を解決するには、ボタンの上にPostBackUrlプロパティを使用しますが、ここではコードの例です午前:asp:asp内のボタン:ハイパーリンクがInternet Explorerのページに移動しない

<asp:Hyperlink ID="hyp" runat="server" NavigateUrl="Page2.aspx"> 
<asp:Button ID="btn" runat="server" Text="Submit" /></asp:Hyperlink> 

なぜ上記のFirefoxでの作業ではなく、IE?

+0

あなたはボタンを持っているのはなぜ? –

+0

ボタンとしてハイパーリンクのスタイルを設定する方法を尋ねたいと思います。 – eglasius

+0

私はボタンをスタイリングしていますが、私の質問はFirefox上ではうまく動作しますが、IEでは動作しません。 – Xaisoft

答えて

7

あなたのしたことはあまり正しくありません。

ジャストボタンを追加し、そのクリックハンドラでは、実行します。

Response.Redirect("Page2.aspx"); 

代わりにあなたはjavascriptの行を書き込むことができます。

<input type="button" value="Text" onclick="location='Page2.aspx'" /> 
+2

私はうまく動作するボタンのPostBackUrlプロパティを使用しています。 – Xaisoft

+0

PostBackUrlは別の話ですが、うまくいくはずです。この問題にはあまりにも多くの解決策があります。 –

+0

上記の私のコードがIEでは動作しませんが、Firefoxでは動作しません。 – Xaisoft

0

あなたのボタンは同じページでポストバックを実行しています。私の場合は、ASP.NETボタンの代わりにHTMLツールボックスの標準ボタンを使用してみます。

編集:ボタンコントロールを削除し、ハイパーリンクを適切にスタイル設定することをお勧めします。または両方を削除し、代わりにハイパーリンクボタンコントロールを使用して、表示プロパティをボタンとして表示するように設定します。

+0

IEはFirefoxでは動作しません。なぜですか? – Xaisoft

1

あなたは内部のボタンを使用している理由は理由がありますハイパーリンク?設計に応じて、あなたは、私はちょうどボタンまたはLinkBut​​tonコントロールを使用して、分離コード

<asp:Button runat='server' id='button1' Text='Click Me' Click='button1_Click' /> 
<asp:LinkButton runat='server' id='linkbutton1' Text='Click Me' Click='button1_Click' /> 

コードビハインド

protected void button1_Click(object sender, EventArgs e) { 
    // some logic 
    Response.Redirect("Page2.aspx"); 
} 

Firefoxであなたのロジックの後、リダイレクトを行うだろうachiveしようとしていますvs Internet Explorer

bとbの間でイベントがバブリングされ/伝播されるため、FirefoxとInternet Explorerの間に矛盾があると思われますローラー。イベントの伝播をキャンセルしたい場合は、ボタンクリックイベントハンドラ(javascript内)にevent.preventDefault()またはevent.stopPropagation()の呼び出しを含める必要がありますか?

+0

実際には、私はこれを偶然にしたと思いますが、今はFirefoxで動作する理由は興味がありますが、IEでは不思議です。これは最善の答えではないかもしれませんが、私はボタンにCssClassを設定しているので、ボタンを使用しています。 – Xaisoft

0

私は<asp:LinkButton CssClass="myButton" OnClick="Redirect" />を使用し、次にCSSを見た目にスタイルを設定し、コードビハインドが機能を処理するようにスタイルを設定します。

protected void Redirect(object sender, EventArgs e) 
{ 
    // do something 
} 

三プレゼンテーションの仕方の別離、マークアップと機能性は、私の意見で移動するための方法である

+0

これはまさに私がボタンでやっていることですが、私はそれがなぜfirefoxで動作するのかというと興味がありました。 – Xaisoft

関連する問題