My asp.netページは、ユーザーがどのレポートを選択したかに基づいて、さまざまなコントロールをレンダリングします。いくつかのレポートには5回のドロップダウン、2回のチェックボックス、6回のドロップダウンが必要です)。ASP.NETのドロップダウンからの変更されたクエリ文字列を使用したポストバック
2つの方法でレポートを選択できます。クエリ文字列にSelectedReport=MyReport
を指定するか、ドロップダウンリストから選択します。また、クエリ文字列でSelectedReportのページに来て、ドロップダウンで選択したレポートを変更するのが一般的です。
私の質問は、ドロップダウンを選択したときにクエリ文字列を変更することです。だから私はSelectedReport=MyNewReport
クエリ文字列にして、ページをポストバックしたいと思います。
現時点では、現在選択されているレポートではないにしても、クエリー文字列にSelectedReport=MyReport
が残る通常のポストバックを行っています。
編集:また、ViewStateも保持する必要があります。
DropdownのイベントハンドラでServer.Transfer(Request.Path + "?SelectedReport=" + SelectedReport, true)
を実行しようとしましたが、残念ながらResponse.Redirectの代わりにServer.Transfer(ViewStateを保持するため)のためURLが表示されます。
多分、私は不可能と頼んでいるか、それについて完全に間違った方法をしています。
@Craig QueryStringコレクションは読み取り専用であり、変更することはできません。
@Jason ViewStateを失うことを除いて、それは素晴らしいでしょうか? (申し訳ありませんが、あなたの回答を見てから追加しました)。