0

私は 3 ステップのウィザードを持っています。最初のステップでは、リピーターを使用して、個人が選択できる一連のボタンを作成します。ユーザーがいずれかのボタンを選択すると、ボタンの値がセッション状態に保存されます。ユーザーは次のステップに進み、以前に選択したものに基づいた同様のボタンのリストが表示されます。したがって、「ハンバーガー」を選択すると、「オニオン」、「レタス」、「トマト」のオプションが表示され、「ホットドッグ」を選択すると、「ザワークラウト」と「ケチャップ」が表示される可能性があります。個人がハンバーガーを選んだとしましょう。これは次のようにセッション状態に保存されます。

    Public Sub Button_ItemCommand(ByVal Sender As Object, ByVal e As   RepeaterCommandEventArgs)
    ' ******** Lets pass on the results of our query in LinqDataSource1_Selecting.
    Session("food_select") = RTrim(e.CommandName)
    Wizard1.ActiveStepIndex = 1
End Sub

さて、これはうまく機能します。しかし、ハンバーガーを選んだとしたら、ホットドッグが本当に食べたいと思っていることに気づきます。ウィザードの最初のステップに戻り、ホットドッグ ボタンをクリックしますが、ウィザードが次のステップに進むと、まだハンバーガーのオプションが表示されます。セッション変数は更新されていません。なんで?ありがとう!

4

2 に答える 2

0

セッション変数はおそらく更新されましたが、次のページは前回アクセスされたときからまだキャッシュされていました。

ウィザードページがキャッシュされていないことを確認してください。

于 2010-04-15T13:51:51.730 に答える
0

問題は、セッション変数のチェックが早すぎることでした。ページの読み込みプロセスの後半でそれらを移動する必要がありました。たとえば、事前レンダリングすると、セッション変数が更新されます。

于 2010-05-10T20:33:09.847 に答える