0

私はすべての有名なWebフレームワークを知っている専門家のWeb開発者です。

プロジェクトで使用できるComponentArtコンポーネントのようなサーバーコントロールのコレクションを作成したいと思います。

ComponentArtの場合: componentartの名前空間をプロジェクトに簡単に登録し、追加のコードや労力(サンプルプロジェクトへの追加ファイルのコピーなど)なしでデータをそれらのコントロールにバインドできます。もちろん、これらはajaxをサポートしています。

これを達成するために、ajaxを処理するためのコールバックをサポートする高度なUserControlを開発する必要があり、さまざまなプロジェクト間でUserControlを共有することに関する情報があまりないことに気付きました。実際、ここに唯一の有用なリンクがあります:http: //www.codeproject.com/KB/user-controls/EmbeddedUserControl.aspx

一方、サーバーコントロールには、コントロールレイアウトを快適に設計できるascxテンプレートインターフェイスがありません。

次のようなWebコンポーネントを開発する方法が必要です。

  1. 他のプロジェクト間で簡単に共有できます(プロジェクトにdllを追加して使用を開始するだけです)
  2. ajaxのCallBackをサポートします(たとえば、ICallbackEventHandler)
  3. HTMLデザイン用のテンプレート(ascxテンプレートファイルを持つUserControlなど)を使用できるため、次のようにコードにHTMLをハードコーディングする必要はありません。

    output.Write("<table>content</table>");

カスタムサーバーコントロールには最初の2つがありますが、ascxファイルがないため、すべてのhtmlコードをcsファイル内に記述する必要があります。

お知らせ下さい...

4

3 に答える 3

1

HTMLをハードコーディングする代わりに、サーバーコントロールにファイルからHTMLを読み取らせることができます。ファイルの名前とパスは、構成設定またはディレクトリパスに基づいて決定します。これにより、サーバーコントロールをより動的にし、HTMLの変更時に再コンパイルする必要がなくなります。これは、条件#3を#1にわずかなコストで満たすのに役立ちます(サーバーコントロールは外部リソースに依存するようになったため、簡単に配布することはできません)。例外に対する特別な予防策として、ファイルが見つからない場合は、いつでもデフォルトのマークアップをハードコーディングしてフォールバックできます。

于 2010-12-10T23:07:45.570 に答える
1

要件1と3は相互に排他的です。マークアップは、コンパイルされたリソースまたは外部ファイルのいずれかから取得する必要があります。外部ファイルはオプションである可能性がありますが、コンパイルされたリソースでデフォルトのマークアップを指定する必要があります。コンパイルされたリソースは、必ずしも.csファイルである必要はありません。リソースファイルに入れることもできますが、それがもっと簡単に使えるようになるかどうかはわかりません。コントロールを既存のサーバーコントロールの複合として構築することもできますが、それではテンプレート作成がはるかに困難になります。

于 2010-12-11T02:54:16.737 に答える
1

あなたは次のような本で自分自身を教育し始める必要があります:

代替テキスト

この本を使って、そして多くの時間を使って、私は複数列のTreeViewを作成しました。ここで見ることができます

于 2010-12-11T03:06:11.477 に答える