0

ページ上のすべてのコントロールをデフォルトにリセットしない新しいクエリ文字列でポストバックを行う方法はありますか? 「default.aspx」という名前のページにいくつかのチェックボックス コントロールがあります。必要なすべてをチェックすることができ、「default.aspx」へのポストバックで持続します (つまり、チェック済みまたは未チェックの状態を維持します)。ただし、「default.aspx?page=2」にポストバックすると、すべてのコントロールが既定の状態に戻ります。彼らがそれをしないようにする方法はありますか?

4

2 に答える 2

2

ここで覚えておくべきことは、新しいポストバックを行うたびに、ページ クラスの新しいインスタンスを操作していることです。古いインスタンスは、Web ブラウザーに送信された時点で破棄されました。それを念頭に置いて、ポストバック間で状態を保持できるという事実はまったく驚くべきことです。すべてを正常に同期させるには、やらなければならないことがたくさんあります。

それらの 1 つが ViewState です。ViewState は、ページのフォームにある特別な非表示の入力要素です。新しいクエリ文字列でページをリクエストすると、フォームからビューステート フィールドを POST する必要がなくなります。ポストバックを実際に行っているわけではありません。これは、まったく新しいページに対するリクエストです。どのフォームからも POST データがないため、ViewState データが欠落しており、ASP.Net は以前に行った可能性があることについて何の手がかりもありません。

于 2009-03-05T04:28:18.773 に答える