1

asp.net コードが Firefox と IE で異なる方法でレンダリングされるという問題に遭遇しました。別の言い方をすると、IE の linkBut​​ton はアンカー タグとしてレンダリングされます。ただし、Firefox では、スパンとしてレンダリングされます。

コード例

<ItemTemplate>
   <div id="<%#Eval("Id","{0}") %>">
     <asp:LinkButton ID="ProductName" runat="server" CommandName="Listing" 
       CommandArgument='<%# Bind("Id") %>' Text='<%# Bind("Name") %>PostBackUrl=""></asp:LinkButton>
     <asp:Label ID="lbl_pricePerUnit" runat="server" Text="" />
   </div>
</ItemTemplate>

他のいくつかのコントロールは、表示されますが、まったくレンダリングされません。代替テキスト 代替テキスト

ここで何が起こっているのかわかりませんし、これが起こるのを見たこともありません。最新バージョンのブラウザーを使用しており、asp.net 3.5 と VS2008 を使用しています。

更新: OK、これは AJAX ページです。グリッドビューは、LinkBut​​ton の OnCommand イベントに反応する更新パネル内にあります。コードは明らかにコンパイルされ、IE で問題なく動作します。

Firefoxでページソースを確認したところ、画像と同じです。含まれている DIV タグに ID がないことについては、良い指摘がありました。埋め込まれたスクリプトは FireFox で問題を引き起こしますか? 数字で始まるidはどうですか?

4

5 に答える 5

1

コード サンプルでは、​​asp:LinkBut​​ton タグの形式が正しくありません。"<" がありません。

于 2009-01-27T13:22:28.767 に答える
1

確かにこれは、ASP.Net がブラウザー用に調整された html を出力するアダプティブ レンダリングによって引き起こされるのでしょうか?

http://aspnetresources.com/blog/adaptive_rendering.aspx

于 2009-01-27T13:12:12.550 に答える
1

私が最もぼんやりした失敗をしたことを認めるのは非常に恥ずかしいです

Jay Sは、コードの正しいインスタンスを見ていることを確認する必要があることを非常に正しく指摘しました。ローカル バージョンのリンクの一部は、Dev Server の Dev バージョンを指しています。最新ではなく、実際には製品名がリンクに変換される前から古いコードが実行されています。

集合的な脳のエネルギーを浪費してしまったことをお詫びし、ご返信いただきありがとうございます。

于 2009-01-27T14:44:44.843 に答える
1

テンプレートには他にも問題があるようです。

Chris がコメントで述べているように、「おそらくリンクに href がない場合は?」

Firefox で生成された html を見ると、含まれている div にも ID がありませんが、IE にはあります。

Firebug を使用して Firefox でソースを確認することと、実際にソースを確認すること (右クリック | [ページのソースを表示]) は 2 つの異なるものであることに注意してください。 JavaScript またはブラウザ エンジンが追加/変更したこと - ページ ソースの表示を使用すると、処理が行われる前にサーバーから返された実際のソースが表示されます - そのコードは正しいですか、同じですか?

BrowserCaps は、1.x の世界であらゆる種類のコントロールを適切に混乱させていましたが、ASP.NET 2.0 で Firefox などをサポートするように更新されたため、ここでは影響を受けません。

于 2009-01-27T13:52:29.987 に答える
0

Microsof によると、LinkBut​​ton は「Web ページにハイパーリンク スタイルのボタン コントロールを表示します。」そのため、アダプティブ レンダリングがこれを HyperLink からスパンに変更するとは思いません。私はこの振る舞いを見たことがありません。

これが本当に起こっていることである場合は、いくつかのことを確認することをお勧めします。

  1. ページの公開後に HTML を変更する DHTML または JS の読み込みはありますか?
  2. リンク ボタンの既定の動作をオーバーライドするアセンブリまたはサーバー コントロールがインストールされていますか?
  3. バインドされたリンク ボタンを使用して空の解決策を試し、再現を試みてから、アセンブリとコントロールをプロジェクトに追加して問題の原因を特定します。

残念ながら、コードからの質問には十分な情報がなく、この段階で決定的な回答を得るにはスクリーンショットがありません。

于 2009-01-27T13:35:44.810 に答える