0

私は VB.net/asp の初心者で、IronSpeed デザイナーと呼ばれるビジュアル データベース プログラムで VB Web アプリケーションを実行しています。この場合、ログイン/ロール セキュリティ機能のために、主に IronSpeed を使用しています。

このアプリの基本的な 2 ページの設定があります。ユーザーがログインすると、AccountEntry.aspx が表示されます。テキスト ボックスにデータを入力し、SQL データベースにリンクされているいくつかのドロップダウン値を選択してから、[送信] をクリックして Results.aspx に移動します。Results.aspx では、ユーザーはデータを変更してから、いくつかの種類のレポート (PDF、Excel など) を生成できます。

私は ASPContent 領域内に ASP コントロールを設定することに慣れています。これらの領域で、ユーザーがブラウザのバック クリックを実行すると、以前に入力したデータがページに残り、ユーザーが変更できる可能性があります。

ただし、この Web アプリでは、IronSpeed が asp 更新パネル内にページと asp コントロールを設定しています。ASP更新パネル内に表示され、キャッシュされた値はブラウザのバッククリックでは表示されません。この場合、ユーザーが Results.aspx に進み、ブラウザーをクリックして AccountEntry.aspx の値を変更した場合に、ユーザー エクスペリエンスのために最初に入力した値が残っていることが重要です。

必要に応じてセッション変数を設定し、ブラウザのクリックを無効にしますが、それは最後の手段です。asp更新パネル内にキャッシュされたデータを保存し、ブラウザのバッククリックのためにそこに置く方法はありますか?

4

1 に答える 1

1

できる最善の方法は、クラスを作成し、フォーム データを入力してブラウザ セッションに保存することです。

Public Class Navigation
  Property Data1 as string
  Property Data2 as string
  Property ComboValue as string
  Property WhateverDesiredValue as string
End Class

ユーザー データをクラスに保存し、Session に保持します。

 Dim myNavitadionClass as new PreviousNavigation With { .Data1="" 'Assign values }
 Session("PreviousNavigation") = myNavitadionClass 
 'Submit the form.

 Then when you came again to the form you check the page_load event.

 If Not Session("PreviousNavigation") is Nothing Then
          Dim myClass as Navigation = Ctype(Session("PreviousNavigation"),Navigation)
 End If

その後、フォームを元どおりに入力できます。

于 2013-10-17T15:16:41.530 に答える