0

4 つの asp.net ページを作成しています。最初の 3 ページには [CONTINUE] ボタンがあり、最後のページには [SUBMIT] ボタンがあります。セッションを使用して最初の 3 ページのデータを保存することは許可されていません。最後の 3 ページで「戻る」ボタンを使用する必要があります。「戻る」ボタンをクリックすると、ユーザーが入力した前のページのデータを維持する必要があります。

私のページはいくつかのポストバックを行うため、javascript.history 関数を使用できません。

私の制限は次のとおりです。

アプリケーションは Web ファームから提供されるため、セッション オブジェクトは使用できません。ただし、この演習では、セッション オブジェクトを、データを格納できるデータベースのような永続的な領域と考えてください。コードは、別の永続スペースに切り替える簡単な方法を示す必要があります。

データベースのような永続スペースとは何ですか?また、別の永続スペースに切り替えるコードを記述する方法は?...

進め方のコツを教えてください。...

ありがとうございました

4

4 に答える 4

2

ASP.Net Wizardあなたの場合、コントロールはオプションです。すべてNextPreviousナビゲーションはコントロール自体によって管理され、それぞれに定義されたイベントNext PreviousFinishボタンがあるためです。コントロールの状態は自動的に保存さViewstateれ、ウィザード コントロール自体によって管理されます。コントロールを何度も再設定する必要はありません。

詳細については、こちらのMSDN記事を参照するか、こちらの例を参照してください。

于 2012-06-09T13:58:36.017 に答える
0

アクセスしたページと入力されたデータを記憶するための新しいアプローチを採用しているため、興味深い Web フォームのナビゲーション プロジェクトを作成しました ( http://navigation.codeplex.com/ )。

また、先月の MSDN マガジン ( http://msdn.microsoft.com/en-gb/magazine/hh975349.aspx ) で、これに関する紹介記事を書きました。

興味がある場合、またはサポートが必要な場合はお知らせください

于 2012-06-09T22:36:07.937 に答える
0

2 つの解決策を提案できます。最初のものは、セッションにデータベースの永続ストレージを使用します。これは、Web ファームのアンチ要件を解決するためです。これは簡単に行うことができ、コードは不要で、構成 (およびもちろんデータベース) のみが必要です。唯一の (99% のケースでは些細な) 注意点は、セッションに保存するものはすべて [Serializable] でなければならないということです。これにより、すべてのノードが同じデータベースを共有し、問題が無意味になるため、Web ファームの問題は無関係になります。ここをチェックしてください:http://msdn.microsoft.com/en-us/library/ms972429.aspx

2 つ目は非常にカスタマイズされており、多数の非表示フィールドまたはその他のコントロールを使用して情報を保存し (基本的に Viewstate を使用してデータを転送します)、ページ間でクロスポストします (

于 2012-06-09T14:00:38.810 に答える
0

いくつかの Web サービス呼び出しなどを介してデータベースにデータを保存することを検討しましたか? 新しいページに移動するたびに、データを保存および取得するために Ajax 呼び出しを行うだけではどうですか?

   $(document).ready(function () {
    $.ajax({
              type: "POST",
              url: "/Services/SomeServiceService.asmx/GetData",
              data: "{ 'myval' : 'someval'}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              error: function (resp) { alert("ERROR\n" + resp.responseText); },
              success: function (data) {
             }
    });
    $(".next").click(function(event){
      $.ajax({
               type: "POST",
               url: "/Services/SomeServiceService.asmx/SaveData",
               data: "{ 'myval' : 'someval'}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               error: function (resp) { alert("ERROR\n" + resp.responseText); },
               success: function (data) {
              }
     });
    });
  });
于 2012-06-09T14:08:50.367 に答える