2011-04-06 5 views
1

Asp.Netのカスタムコントロールを構築する方法はたくさんあります。一部の人はSystem.Web.UI.WebControls.WebControlを基本クラスとして使用し、他の人はSystem.Web.UI.Controlを新しいコントロールの基本クラスとして使用します。カスタムコントロールの作成:WebControlまたはControlを使用しますか?

どちらか一方をベースとして選択する理由は何ですか?

+2

[\ [ASP.NET \]の重複可能性ユーザーコントロール、サーバーコントロール、カスタムコントロールの違いは何ですか?](http://stackoverflow.com/questions/994009/asp-net-what-are-ユーザーコントロールの違い - サーバーコントロール - custo) – Jacob

+1

@Jacobこの質問は、基本クラスについて話しているので、重複していません。コントロールタイプではありません(ascxコントロールとc#コントロール)。 –

+1

また、これらは両方とも、カスタムコントロールのカテゴリに該当します.ControlsはUIなしのもの、.WebControlsはUIのコントロール用です。 –

答えて

1

System.Web.UI.WebControls.Webcontrolは、System.Web.UI.Controlから派生し、スタイリング(背景色、スタイルなど)のサポートを追加します。

Controlはデフォルトでサポートされていませんので、プロパティを作成して実装し、Render()メソッドでそれらを処理する必要があります。 WebControlsには、特定の共通プロパティのテーマとツールボックスのサポートも付属しています。

+0

良い点!しかし、私はテーマを使用していないので、私は 'Control'クラスに固執すると思います。 –

1

コントロールには、WebControlがレスポンスオブジェクトにレンダリングするユーザーインターフェイスはありません。

+0

ユーザーインターフェイスは、Renderメソッドをオーバーライドすることで、コントロールにレンダリングできます。 –

+1

はい、しかし、天文学的な量の余計な開発努力が必要です。さらに、WebControlsクラスは、Visibleプロパティなど、わかりやすいASP.NETコントロールから期待される、一般的な機能をすべて取り入れています。 –

+0

@Ben f。チェック:http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspxコントロールにもVisibleがあります。 –

0

レンダリングされたページにUIコンポーネントが表示されるときには、System.Web.UI.WebControls.WebContro lを使用する必要があります。さまざまな配管コードがUIを生成するためです(UIを作成するにはかなりの労力が必要です)。

System.Web.UI.Controlsは、コントロールがレンダリングされたページにUIを持たない場合(ツールボックスにあるASP.NET DataSourceコントロールの一部を考えたり、ページにドラッグしたり、何かをレンダリングしたり、 UIを持つGridViewコントロールにデータを取得するためのコンジットとして使用します)。

See this MSDN article

+0

唯一の違いはUIですか? BackgroundColorと同じようなもの? –

+0

WebControlsは.aspxページが解釈された後にブラウザでレンダリングされたクライアントサイドを持っており、コントロールはエンドユーザにとってわかりやすいUIを持っていません(彼らは厳密には配管コードの背後にあります)。 –

関連する問題