2

ドロップダウンメニューがあり、ポストバックで、選択した値を取得できません。

  • MasterPage EnableViewState = False
  • コンテンツページViewState=true
  • DropdownListコントロールViewState=true

動作しません

Masterpage EnableViewState = trueに切り替えると機能しますが、サイトの残りの部分は実際にはビューステートを必要としないため、理想的には有効にする必要があります。

データバインディングはPage_Initハンドラーで発生し、その中にPage.IsPostBack句があります。

何か案は?

4

3 に答える 3

6

ページごとに 1 つの Viewstate しかありません (viewstate に格納されるコントロールの状態は別として)。マスターページでオフにすると、ページ上でオフになります。

于 2009-02-10T22:37:36.533 に答える
3

クリスは 100% 正しいです。この 1 つのコントロールの状態のみを維持したい場合はDropDown、コントロールの状態をサブクラス化して追加できます。これは、ViewState の設定に関係なく機能します。

これは、制御状態に関する Phil Haack のチュートリアルです。

于 2009-02-10T22:40:26.857 に答える
1

ドロップダウンリストで選択した値をFormコレクションから取得できるはずです(ViewStateを有効にする必要はありません)。例:

if (IsPostBack)
    string selectedValue = Request.Form["Id_of_the_DropDownList"];
于 2009-02-10T22:58:06.517 に答える