0

ユーザーがいくつかのメンバーの詳細を入力できるデータ入力フォームをasp.net Webフォームに作成する必要があります。各メンバーの詳細には、FirstName、Lastname、DateOfBirth などの約 20 のデータ項目があります。入力されるメンバーの数は、1 から 20 までの任意の数です。

すべてのメンバーが入力した後、または入力プロセス中に、前または次のエントリに移動して変更を加えることができる必要があります。基本的に、ページを横断する [次へ] ボタンと [前へ] ボタンが必要です。最後に [保存] ボタンをクリックすると、入力したすべてのデータが保存されます。

データを入力するためのすべてのテキストボックスを持つ UserControl を作成しました。ユーザーコントロールを 5 回表示する 5 つのハードコードされたパネルを作成しました。これにより、エントリーできるメンバーの合計は 5 人になります。

次のボタンがクリックされたときに、このハードコードされたモデルを動的に追加されたパネルに置き換えたいと思います。

これを達成する方法を教えてください。または、より良いアーキテクチャがあれば教えてください。ウィザード コントロールを試してみましたが、以前に入力した値を保持したり、[次へ] ボタンと [前へ] ボタンを使用してデータを移動したりするのが面倒でした。

ありがとう

4

3 に答える 3

1

以下を使用して、コントロールをページに動的に追加できます。

Page.Controls.Add(new MyControl());

セッションなど、コントロールに入力されたデータの一時的なストアを見つける必要があります。

Session["addedControls"] = myControls;

追加されたコントロールの数を追跡してループし、使用している永続的なストアにすべてのデータを保存できます。

ここに例があります: http://howto.jamescarnley.com/2008/05/adding-fields-dynamically-in-aspnet.html

コントロール全体をセッションに格納することには、関連するオーバーヘッドなどの欠点があります。データを格納するだけで、より効率的ですが、実装するのに少し手間がかかります。これは、Cookie が有効になっている場合にのみ機能します。

または、必要な回数の Page.Controls.Add を呼び出して、作成したいエントリの数を選択し、その数のコントロールを表示するためのドロップダウン リストを用意することもできます。次に、最後にそれらをすべてまとめて保存します。

于 2012-10-06T11:35:10.013 に答える
0

JavaScriptで簡単に新しいメンバーを入力するために必要なコントロールを動的に追加できます。あなたが提案することは、私には悪夢のように聞こえます。メンバーを追加するためのコントロールと [メンバーの追加] ボタンを備えたページを作成します。[メンバーの追加] ボタンをクリックすると、メンバーをデータベースに保存し、このセッションで追加されたメンバーのリストを取得し、ページの [メンバーの追加] 領域の右側にあるリストにメンバーの名前を表示します。 . メンバーを確認したい場合は、名前をクリックして、そのメンバーを編集する準備ができていることを示すことができます。または、終了するまで別のメンバーを追加できます。あなたがやろうとしていることは、管理するのは悪夢であり、ユーザーにとって使いやすいものではありません.

于 2014-08-20T12:29:50.437 に答える
0

動的コントロールの使用は非常に難しく、ページを更新するか、更新パネルを使用する必要があるため、ユーザー フレンドリーではありません。

あなたの場合、Knockout を使用して JavaScript からすべて実行することをお勧めします。これは完全なサンプルKnockout Gridです。

グリッドを追加または編集した後、JSON.Stringify を使用して JavaScript オブジェクトを文字列にシリアライズし、このテキストを隠しフィールドに追加してください。

フォームの送信時に、隠しフィールドの値を取得し、newtonsoft json ライブラリを使用して文字列をオブジェクトに変換し、モデルのリストになるオブジェクトを無料で使用できます (例: Order)。

動的コントローラーと比較して、これはより管理しやすく、ユーザーフレンドリーです

于 2016-03-21T16:01:30.890 に答える