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