2011-02-10 14 views
2

liの中に<asp:Panel>があります。問題はhtmlが検証されないことです。divからspanにasp.netパネルのレンダリングされたタグを変更しました

レンダリングdivspanに変更する際のヘルプがありますか?

私はASP.NET 4.0のWebサイトでこれをc#コードを使用しています。

+5

回答を受け入れますか? –

+0

パネル内には何がありますか? –

+2

あなたはパネルで何をしていますか? 「」と定義することはできませんか? –

答えて

1

Eilon Liptonの記事Customizing the rendering of the UpdatePanelをご覧ください。

彼は、cssクラスとカスタムタグのプロパティを使って更新パネルを拡張する方法を示しています。

+0

これはasp:Panelであり、UpdatePanelではありません。 – PHeiberg

+0

@PHeiber:そうだけど、アイデアは同じです、私は例にしかリンクしていません。 – Alex

+0

これは、OPがDefaultButtonビヘイビアをPanelから使用することを望んでいないことを意味します(ただし、OPはその希望をその投稿に記載していません)。レンダリング子メソッドでその動作のコードを手動で追加することができます。 – PHeiberg

5

Labelコントロールを使用します。これはスパンに相当します。パネルのレンダリングを変更することはできません。

+0

パネルにdefaultbuttonが割り当てられています – Adam

+1

はい、それは翻訳されません。また、何かを考えただけで、DIVをスパンレイアウトのように動作させたい場合は、次のように追加できます:style = "display:inline;"あなたはCSSであなたが望むものを達成することができるかもしれません。 –

1

javascriptを追加すると、パネルの内容に対するデフォルトのボタン動作を適用し、パネルをプレーン<span>要素で置き換えます。

jQueryを使用している場合は、hereの2つの例があります(コメントも確認してください)。

+0

-1:あいまいさを通したセキュリティは、非常に抽象的な方法で考えています。これは、OPに時間外に多くの警告を見つけるための解決策しか持たないアイデアを提供するという観点からですが、 ! –

+0

@Mr。失望:私は、フィールド内の入力を押すとデフォルトでクリックするボタンをコントローラに指示する責任がどのようになっているかを知ることができません。それはビューIMOの実装に完全に依存します。私はあなたのポイントを逃していますか? – PHeiberg

2

パネルのレンダリングをdivからスパンに変更することができます。Control Adapterを作成して、Panelのデフォルトレンダリングをオーバーライドすることができます。あなたはそれらを読んで、いくつかの例を参照することができますherehere

ただし、私はあなたの問題を解決するための別のオプションを見つけると思います。このような標準コントロールの動作を変更すると、将来の開発者はアプリで何が起こっているのかを理解することが難しくなる可能性があります。この作業を実現するための努力は、他のソリューションの1つを使用するだけではありません。あなたがすでにパネルを持っているページがたくさんあり、それを他の何らかの仕組みに変更することができない/したくないのであれば、これは妥当としか見えません。

0

スタイリングのタグを変更する場合は、divdisplay:inlineを追加してください。それはとして動作するでしょうspan

+0

それはまだIE7のdivとして動作します:) – StronglyTyped

関連する問題