2011-10-18 9 views
2

セクション数が決められていないWebページがあります(テキストボックス、ドロップダウンなどのコレクションで構成されています)。ユーザーが「セクションを追加」ボタンをクリックすると、このセクションを動的に追加する必要があります。ユーザーが追加できるセクションの上限はありません。保存ボタンがあり、その時点ですべてのセクションを通過してデータを保持する必要があります。複数のセクションを動的に追加する-ASP.NET

私の最初の考えは、ユーザーがサーバー側の「セクションを追加」をクリックするたびに動的に追加するユーザーコントロールとしてセクションを作成することです。

ユーザーコントロールを動的に追加することを避けたいのですが、ちょっと風変わりだと感じています。ここでは、jQueryまたはクライアントテンプレートを活用することができるかどうかを理解しようとしています。

意見や提案はありますか?

+1

私たちはハイブリッドアプローチでこれと同様のアプリを取り扱っています。 UserControlsは、ページが初めてロードされ、動的クライアント側のレンダリングがjQueryテンプレートによって処理されるときに使用されます。私たちはポストバックをまったく使用しないため、すべて可能ですが、WebMethodsにjQuery bajaxを使用してサーバーと通信しています。はい、これはうまくいくでしょう! –

+0

フロイド - ハイブリッドアプローチについて説明できますか?ページが初めて読み込まれたときに、既存のセクションをユーザーコントロールとして追加すると言っていますか?以降の追加では、ユーザーコントロールからマークアップを取得し、jqueryテンプレートを使用してセクションをレンダリングしますか? – Nick

答えて

1

ユーザーコントロールソリューションの使用に間違いはないと思います。同様の(サーバー側の)テクニックは、RepeaterやListViewなどのデータバインドコントロールを使用することです - アイテムテンプレートはセクションを定義します。サーバー側のソリューションの利点は、迅速に構築でき、ビューステートなどのASP.NETインフラストラクチャを使用できることです(ポストバック時の状態の維持について心配する必要はありません)。典型的なASP.NETフォームの開発者は、ロジックを簡単に理解できます。フリップ側はマークアップサイズが大きいため、セクションを追加する際に複数の大きなデータ転送が行われます(ポストバックの全部または一部を使用するかどうかは関係ありません)。

ポストバックや関連するデータ転送を避けるため、私は個人的にクライアントのテンプレートアプローチを好みます。しかし、2つの問題があります:a)セクションを表示/更新するための比較的複雑なロジック - コードが2つの場所で断片化されていることを覚えています - jsとサーバー側のコード - 一般的な開発者は理解しにくいでしょうb) jsがサポートされていない場合はフォールバックメカニズムを提供する必要があります)

関連する問題