2011-10-25 10 views
2

私は自分のビジネスのためにデータベースにデータを提出する雇用申請書を作成しています。Webフォームでの情報の繰り返し - Asp.Net

私の注目を集めたことの一つは、私が就職履歴のセクションを作成したときに、ほとんどの応募者がここに入れるためのさまざまな情報を持っていて、 3人の過去の雇用主の必要なセットは、ターゲットの見込み客ベースのためにはるかに厳格です。一部の人は先行する仕事が1つしかなく、10人以上の人がいるかもしれません。さらに、この情報のための大量のフィールドを作成することは、目に見えないだけでなく、データベース開発の世界でも悪い習慣です。 SO ...

私がしたいことは、ユーザーが入力データを追加し始めたときにフォームが複製して別のセットを作成するサブフォームの背後にある理論ですユーザが必要とする回数だけ利用可能なデータフィールドの数。この方法では、空のスペースではなく、データのみが保存されます。

これはMicrosoft Accessの方が簡単ですが、同じ目標を達成するためにAsp.Net WebフォームとSQLが全く異なる方法でこのプロセスを処理することがわかりました。

私はこのトピックについていくつかの研究を行い、これについて多くの方法があることを発見しました。そして、私が見つけたほとんどの事柄は、これについてどうやって行くのか非常に曖昧です。だから、私はあなたに手を差し伸べる。

以前の勤務経験の入力を処理するために繰り返しフィールドを追加するにはどうすればよいですか?わかりやすくするために、雇用者、スーパーバイザ、およびジョブの3つのフィールドがあります。また、これらの3つのフィールドの追加は、ユーザーがボタンをクリックして追加した後に行われると仮定します。これらの3つのフィールドをasp.net Webフォームで必要なだけ何度も繰り返すには、私は何をする必要がありますか?

+0

データモデルはどのように見えますか?雇用歴ごとに別のテーブルに記録がありますか?メインのアプリケーションレコードが作成されているか、アプリケーションが完了していますか?これらの要素は、問題の実装方法に大きく影響します。 – agradl

答えて

0

新しいフィールドがフォームとして表示され、ユーザーが同じフォームを使用して複数の行のデータを追加できるグリッドを持つ方法があります。+ボタンのようなものがありますユーザーがフィールドの新しいセットを要求すると、フォームの以前の値を保存します。

1

あり、ここで、ASP.NETページで情報を繰り返すためのオプションの多くは、それらのいくつかの上に行く記事です:すべての

Data Repeater Controls in ASP.NET

+0

残念ながら、そのリンクはもう動作しません。グーグルが代替リンクを見つけるのに役立たなかった – Andrew

0

まず、あなたのデータベースがする必要がありますこれを可能にするように構成されている従業員情報を保持するテーブルと、雇用履歴を保持するテーブルとを含む。履歴テーブルには、多対1の関係でEmployeeテーブルに戻ってくる外部キーが必要です。

ASP.NETに関しては、creating dynamic controlsを参照する必要があります。単一のフィールドセットにプラスボタンを付けることで、追加するフィールドを追加してデータベース内の行に保存することができます。

0

ほとんどのUIがWebフォームを使用して構築されていた従来の.NETアプリケーションがあります。私は最近、AngularJSを使って実現したこのアプリケーションのUIのためにあなたのものに似た要求を出しました。

純粋なWebフォームの回答ではありませんが、既存のWebフォームで実装できる解決策ですので、まだ有効です。

この特定のユーザー提出アクションに適用可能なすべてのデータを保持するJSONデータを送信するコントローラ(コントローラ、ApiController、または.ashx 'Generic Handler')を構築します。純粋なhtmlとAngularJS(google 'ng-repeat')を使用して、このWebフォームページでUIコンポーネントを構築してください。あなたの状況に適用できるたくさんの例があります。今回は実際にWebフォームのマークアップを使用しないでください。繰り返し可能な要素は、フロントエンドのデータにバインドする必要があります。ユーザーがプラスボタンをクリックして作業履歴を追加すると、そのデータに追加され、角度は目的のブロックを繰り返します。

新しいhtmlフォームの送信アクションを、作成したコントローラまで(フォームのng-submitディレクティブまたはsubmitエレメントのng-clickディレクティブを使用して)フックします。あなたがデータを扱う方法を知っていて、それまでに従っているなら、ここからそれを持っているはずです。さらに助けが必要な場合は、REST APIとAngularJSの調査を強くお勧めします。

Webフォームよりも洗練されたツールを使用してフロントエンドをプログラミングする方法をすぐに学ぶほど早く、純粋なWebテクノロジ(AjaxとJavaScript)を使用してデータを送信する方法を早く学ぶほど早くWebフォームフレームワークの範囲から自分自身を軽減します。私は間違ったことをしないでください。それはすごく大変なことですし、ウェブを知らない人、ウェブのためのプログラムを助けます。結局、必要になったときに自分の境界の外に出る方法を少なくとも知っているときには、あなたは一層良くなるでしょう。

関連する問題