-1

ASP.NET は初めてです。ユーザーがログインしてアプリケーションを起動できるAsp.NETおよびC#でユーザーインターフェイスを設計しています。このアプリケーションを使用する場合、ユーザーは 10 ページの長さのフォームに記入する必要があります。

そこで、ナビゲーション メニューを使用し、すべてのページが異なるメニュー項目で静的メニューになるようにインターフェイスを設計しました。ユーザーがフォームの最初のページに詳細を入力して保存すると、データがデータベースに保存されます。

問題は、メニュー タブをクリックして別のページに移動することです。そのページのメニュー タブを使用して最初のページに戻ると、入力されたすべてのデータがなくなり、空白のページが表示されます。それがどのように機能するかは知っていますが、最初のページに戻って最初のページに戻ったときに、2ページ目にデータを入力しているときに(最初のページにデータを入力した後)、一度に座ってできるようにしたいです彼が記入したデータを見るために。

どのような概念を使用できますか? このシナリオでビューステートが役立つかどうかはわかりません。

4

5 に答える 5

2

セッション全体にわたって彼の情報を保存するために、セッション状態変数の使用を検討する必要があります。ユーザーがログインしている場合は、ユーザーが入力した情報をデータベースに保存し、「ApplicationFinished」のブール状態を保持して、ユーザーがログインを終了したかどうかを確認することを検討する必要があります。そうしないと、各ページで、既に追加されているデータベースから情報を取得するための呼び出しが行われるため、彼は別の場所で、または一度にすべての情報を入力できます。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

セッション状態はあなたにとって長すぎるかもしれません。その場合は、ViewState について調査してください。このような問題に取り組むには、さまざまな方法があります。それはすべて、どのテクノロジーがお客様のニーズに最も適合するかにかかっています。

http://msdn.microsoft.com/en-us/library/ms972976.aspx

また、タブ システムを使用している場合は、AJAX タブを使用することを検討してください。これにより、別のタブをタブ移動している間でもデータがフォームに残るようになります。

http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/

于 2011-04-27T18:29:01.180 に答える
0

データベースにデータを書き込む場合、最善の(高速な)回避策は、この情報を保持するテーブルに「completed」という名前の列を追加することだと思います。フラグ「完了」が1に設定されていない場合は、データベース情報をロードして、ページコントロールに入力します。

データベースに新しいレコードを作成するときは、レコードのIDを取得して、Sessionに設定します。ユーザーが最初のページ(前のページ)に戻った場合は、情報IDを回復してデータをロードできます。

于 2011-04-27T18:33:43.210 に答える
0

新しいことを学んでいる限り... jqueryをリストに追加し、 JQuery Wizard Plug Inを活用してください。これにより、「10 ページのフォーム」を 1 つのユニットに統合し、サブ分割、ルーティング、および管理をより簡単に行うことができます。AJAX を利用して各ステップを保存しながら、組み込みのナビゲーションおよび検証メソッドを提供できます。

于 2011-04-27T18:39:34.220 に答える
0

これはあなたが探しているものではありませんが、問題が、ユーザーがページに戻ったときに以前に入力されたページのすべての入力を表示することであり、そのすべての情報を既に保存している場合は、試すことができますこのようなもの:

HTML

<input type="text" id="yourID" name = "yourName" value = "<%=data%>"/>

あとは、コード ビハインドでを設定dataするだけです。public次にdata、データベースを呼び出すだけで値を取得できます。

init 呼び出しまたはそれが何であれdata、空にすることを確認してください。public string data = "";このように、情報がない場合は空白になり、保存された情報がある場合は入力されます。

params次のurlように、すべてのデータを渡すこともできます。

C#

Response.Redirect("webpage.aspx?data=" + data + "&data1=" + data1);

またはJavaScriptを介して:

window.location = ("webpage.aspx?data=" + data + "&data1=" + data1);

リクエストを取得するには、次のようにします。

if (Request.Params.AllKeys.Contains("data"))
{
   data = Request.Params["data"];    
}

ただし、大量のデータが渡される場合、この方法はあまり理想的ではありません。

于 2011-04-27T18:51:07.380 に答える
0

タブを制御するには、クライアント側の JavaScript を使用するように切り替えることをお勧めします。こうすることで、タブ間を行ったり来たりしても、フォーム データはフィールドにとどまります。JavaScript ボタンを使用して、ユーザーをタブからタブに誘導できます。

私はJQueryを使用してこれを行いました。実際には、キャプチャする必要のあるフィールドが 150 ありました (すべて必須でした)。さまざまなタブで同様のデータをグループ化し、さまざまなタブをアクティブにするボタン (「< 前へ」、「次へ >」) を用意しました。

完了したら、[保存] ボタンを表示します。

于 2011-04-27T18:43:20.647 に答える