0

ASP.Net フォーム、SQL、C#

テキスト ボックス、チェック ボックス、ラジオ ボタンなどの状態を保存する必要があるアプリがあり、そのフォームの状態を後で呼び出すことができるようにする必要があります。

私の現在の解決策は、すべての入力フィールドを反復処理し、フィールド ID とフィールド値を XML 文字列に格納してから、SQL テーブルの nvarchar またはテキスト フィールドにプッシュすることです。これを行う理由は、時間の経過とともにフォームにさまざまなフィールドが含まれる可能性があるため、テーブル内の既知の一連のフィールドに直接ダンプできないためです。

将来、ユーザーは「状態レコード」を思い出すことができ、まだ存在するすべてのフィールドが再入力され、新しいフィールドは空白のままになります。

これはかなりうまく機能しますが、誰かが別の方法またはより良い方法でこれを達成したかどうか疑問に思っていましたか?

このプロジェクトのアイデアは、ユーザーがページでいくつかの選択を行って「クエリ」を作成することであり、以前に保存した「クエリ」を呼び出すことができる機能が必要です。

4

2 に答える 2

0

Asp.net は、viewState でコントロールの状態を保持します。すべてのデータを保持するために必要なのは、この viewState だけです。はい、値だけではありません。

ViewState は、asp.net の隠し変数に保持されます。

この値をデータベースに書き込み、ページの読み込み時に loadViewState を強制すると、すべての値が復元されます。

loadViewState 関数はポストバック時に Asp.Net によって呼び出されるため、この場合は自分で呼び出す必要があります。

于 2012-05-25T19:10:08.293 に答える
-2

たとえばJQueryを使用すると、クライアント側ではるかに簡単になります。コントロールのデータプロパティに初期値を保存し、すべてのコントロールを再入力できます。もう 1 つの方法は、非表示フィールドを作成し、初期値を特殊文字で区切って配置し、コールバックのたびに (たとえば、前の値のボタン クリック イベント)、非表示フィールドから読み取り、値を分割してコントロールを更新することです。

于 2012-05-25T18:48:23.957 に答える