- PR -

[ASP.NET]DropDownListはViewStateが大前提?

1
投稿者投稿内容
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-03-01 21:38
こんばんは。

今日、はじめてPageディレクティブにenableViewState="False"を指定した画面で
WebコントロールのDropDownListを使用する、ということをやりました。

PageIndexChangedイベントがうまく発生しないのはなんとなく予想してたのですが、
Page_LoadでSelectedIndexやSelectedValueプロパティの値を取得することすらできません。

ページのEnableViewStateがFalseになっている画面でDropDownListの選択値を取得するには、
Request(DropDownList.UniqueID)でとるしかないのでしょうか?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-03-02 14:27
コントロール実行の有効期間の「ポストバック データの処理」フェースで.Itemsが復元されていなければなりません。
.Itemsをデザイナで定義するか、Page.InitでDataBindするとか。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-03-03 10:45
ASP.NET 1.1でViewStateを無効にすると
Request.Form("DropDownList1")
のように選択した値を取得するしかないようです。

この問題はマイクロソフトも認識しているようでASP.NET 2.0では問題なく動作します。

↓ASP.NET 2.0でViewStateを無効にする
http://aspspider.net/AkioKasai/Goto.aspx?id=060303-1

ASP.NET 1.1でViewStateを削減するにはViewStateをSessionStateに移行する
方向で検討されてはどうでしょうか。

あと、Ajaxを組み込んでポストバックを回避するとか・・・

↓DropDownList/ListBoxを連動させる(ASP.NET 1.1 Ajax版)
http://www.friendlysw.com/aspnet/Articles/Goto.aspx?id=050826-1

ASP.NET 2.0ではAtlasを組む込むとコードレスでポストバックを回避できます。

↓DropDownList/GridViewを連動させる(ASP.NET 2.0 Atlas版)
http://aspspider.net/AkioKasai/Goto.aspx?id=060301-3

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-03-03 15:21
todoさん、Accessさん、ご回答ありがとうございます。

使用する.NET Frameworkは1.1SP1です。
今ちょっと忙しいので、とりあえずRequestからとるようにします。
暇になったら、他の方法も試してみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)