-3

私は、C#、Asp.Net SQL 2008/2012 を使用して次のタスクを達成するための専門家の意見を求めています。

次のテキスト ボックスを含むフォームがあり、DataBase のテーブルにマップされているとします。

  • ID : アイデンティティ
  • 題名
  • 名前
  • 生年月日

新しい連絡先をクリックすると、フォームが表示されたとします。

「名前」を入力してタブを押すと、すぐにレコードを作成したいと思います。次に、「姓」を入力すると、更新などが行われます。そのため、その場で更新/コミットしたい

すべてのフォームにこの種の機能が必要です。

これを達成するための出発点は何でしょうか。

CRUDS 用のサービスを使用する必要がありますか、それともどのような短いモデルを検討する必要がありますか?

更新:以下は、理解を深めるための画像です。

Gmail/Google アカウントをお持ちの場合は、新しい連絡先を作成してみてください。

要するに、私はこの種の機能を実装したいと考えています。

ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

2

これは問題だと思いますが、bad ideaユーザーごとにフォームごとに複数のリクエストがあるという事実と、ユーザーがスペルを間違えたフィールドを編集するために戻った場合、追加のリクエストがあるという事実は別として、多くの無駄...これに関する私の意見は別として、ここから始めることができます:

  1. これをクライアント (つまり、ユーザーの Web ブラウザー) でのユーザー インタラクションから発生させたいと考えてください。ユーザーがあるテキスト ボックスから別のテキスト ボックスに移動するたびに AJAX 呼び出しを行う必要があります。

  2. AJAX を使用したい場合は、使用できる優れた Ajax メソッドがいくつか含まれているjQueryを調べる必要があります。

  3. ユーザーは、Tab キーを押すかマウスをクリックすることでテキストボックスから移動できるため、これらのイベントの両方を処理する必要があります。ここでのキーワードはfocusであり、これに対応するイベントが発生します。jQuery では、メソッドを使用できます.Blur()

  4. さて、おそらく各テキストボックスで同じコードを何度も書き直したくはないので、必要な jQuery が組み込まれている AutoUpdateTextBox などcustom classから派生した を作成することを検討することをお勧めします。 TextBoxJavaScript 関数が必要なのは 1 回だけで、TextBoxID や Value などのパラメーターを渡すことができるため、大量の JavaScript を出力するだけではいけません。

  5. 最後に、この AJAX 呼び出しを受け入れてデータベースを更新するハンドラーが必要です。1 つを作成する方法は 5000 万通りあります。ASP.net Web フォームを使用している場合は、ASHX ハンドラーを作成し、適切なデータベース保存ロジック (より適切にはデータ層アクセス ロジック) をそのハンドラーに追加できます。ハンドラーはページではなく、いくつかのパラメーターを取り、結果を返す URL として機能します。asp.net LifeCycle は実行しません。

    または、ASP.net MVC を使用している場合は、ルートを設定し、コントローラーでこれを処理して、応答ストリーム全体として true/false 値を返すか、Ankur Singhal の回答で提案されているように JSON を返すことができます。Web フォームの方が簡単かもしれません。

    Web サービスまたは WCF サービスを作成することもできますが、本当に必要なのは基本的なハンドラーだけです。

完全な解決策を提供することなく、これが開始するのに十分であることを願っています. 概要を説明したコンポーネントを 1 つずつ完全なセットとして見始めると、やりたいことを実現できます。

ユーザーが新しいテキストボックスに移動するたびに更新せずにこれを行う方法を考える方が賢明でパフォーマンスが高いかもしれません。特定のイベント(ユーザーがページの「次へ」ボタンをクリックするか、「後で保存」ボタンを提供するとします)の後、全体の値で AJAX リクエストを起動する JavaScript オブジェクトをページに保持できます。フォームをハンドラーまたは Web サービスに送信します。

上記の概要でここで重要なのは、それが理にかなっていることを願っていますが、あなたが言及したような要件がある場合、それをさまざまなコンポーネントに分解したいということです。プログラミングをすればするほど、「自分のプロジェクトやアイデアを小さなパーツに分解する方法」が簡単になります。

パーツの概要を把握したら、各パーツの作成を開始できます。行き詰まったときに、行き詰まっていることについて具体的な質問をすると、SO の人々が喜んで助けてくれます。

彼らが言うように、「どうやってゾウを食べますか? - 一度に一口ずつ!」(実際にゾウでテストした人は誰も知りませんが、要点はわかります...)

幸運を!

于 2013-03-15T03:13:29.880 に答える
0

Web サービスを使用し、Javascript を使用してそれらを消費できます。また、2 つの間で JSON を使用します。

于 2013-03-15T02:15:11.023 に答える