2008-09-11 20 views
5

HTMLマジックが存在しないため、HtmlControlsが好きです... ASPソースは、クライアントの見た目に似ています。HtmlControlsとWebControlsを使用する場合

GridView、Repeater、CheckBoxListsなどのユーティリティで議論することはできません。その機能が必要なときに使用します。

はまた、それはミックスとマッチコード持っている奇妙に見える:

<asp:Button id='btnOK' runat='server' Text='OK' /> 
<input id='btnCancel' runat='server' type='button' value='Cancel' /> 

を(あなたがOKにサーバー側のイベントリスナーを結合するが、キャンセルしたい場合に、上記の場合は、ちょうどそのJavaScriptを実行します

そこにいくつかの決定的なスタイルのガイドがありますか? HtmlControlsを避けるだけでいいですか?

答えて

5

ページによって放出されるマークアップをより詳細に制御したい場合は、HTMLコントロールをオプションとして考えると便利です。すべてのブラウザに同じマークアップが正確に表示されるようにするという意味では、よりコントロールできます。

あなたのようなSystem.Web.UI.HtmlControls作成する場合:

<input id='btnCancel' runat='server' type='button' value='Cancel' /> 

を次に、放出されようとしているコードの種類を知っています。たいていの場合でも:

<asp:Button id='btnCancel' runat='server' Text='Cancel' /> 

は同じマークアップになります。すべてのWebControlに対して同じマークアップが必ず発行されるわけではありません。多くのWebControlには、ブラウザのユーザーエージェントに基づいて異なるHTMLをレンダリングする適応レンダリングが組み込まれています。例として、DataGridはモバイルブラウザではデスクトップブラウザとはかなり異なって見えます。

HtmlControlsとは対照的にWebControlsを使用すると、WebControlsでしか動作しないと信じているASP.NET v2.0 ControlAdaptersを利用できるようになります。これにより、プログラムによって構成された、出力されるマークアップに対する制御が可能になります。

これは、特定のモバイルブラウザやWebTVがWMLや全く異なるマークアップのセットを必要としていると考えると、より価値があるように見えるかもしれません。あなたは、サーバー側の任意のHTMLコントロールへのアクセスを得ることができたrunat =「server」を追加することにより

1

まあ...サーバー上で何もする必要がなければ、私はHTMLコントロールを使用しません。私はそうするでしょう

<input id='btnCancel' type='button' value='Cancel' /> 

フィンです。

3

私の経験では、ほとんど違いはありません。 Darren氏によると、サーバー側の機能が必要ない場合、HTMLコントロールはおそらく影響が少ないです。

また、runat = "server"ディレクティブとIDを追加するだけで、ほぼすべてのHTMLコントロールにサーバー側の機能を組み込むことができます。

0

... と私はHTMLコントロールがASP.NETサーバーコントロールに比べて軽量であると考えて..

関連する問題