2011-10-23 6 views
0

私は、ボタンをクリックすると、ユーザのマークアップの新しいセクションを追加するASP.NETページを作成しています(マークアップのセクションは、ドロップダウンリスト、テキストボックス、テキストエリア)。ユーザーはこれらのセクションを任意の数だけ追加し、データを入力してサーバーに送信することができます。DOMからマークアップのコピーを作成する

これを実装できる方法の1つは、マークアップ内のこのセクションのテンプレートを非表示にして、クライアント側でこれをコピーすることです。フォームを送信すると、マークアップを繰り返し、ユーザーが入力した値をPOSTできます。

これを行うには良い方法がありますか?私が考えることのできるもう1つの方法は、ユーザーコントロールを使用してサーバー側に動的に追加することです。

PS:私はあなたも、マークアップでそれを非表示にする必要はありませんなど

+0

追加の入力を追加して投稿する場合は、ビューの状態の検証に注意してください。 –

答えて

0

ASP.NET 4.0 Webフォーム、jQueryのを使用しています、あなたは、単にJS変数としてHTMLを保存することができます。

私は、ASP.NETモデルバインダーは配列の変数名を必要とするので(セクションの配列を受け入れるように、あなたの説明からは)明示的にインデックスで修飾されている必要がありますたとえば<input name="Section[0].DropDownValue>)、DOMにHTMLフラグメントを追加する前に、「マスタコピー」のプレースホルダインデックス(例:[0])を動的に生成された新しい値に置き換える必要があります。

0

これはおそらく絶対的な最善の方法ではありませんが、私の頭の上からは、送信ボタンのクリックイベントにイベントハンドラを割り当て、JavaScript以外のデータ値。

関連する問題