2011-01-20 19 views
0

私のasp.netページには、いくつかのDropDownListsがあります。 私はリピーターも持っています。aspで特定のページコントロールの値を取得する:Repeater

ItemDataBoundイベントでは、これらのDropDownListsの値を取得して、Repeaterのデータを変更する必要があります。これらのDropDownListsのSelectedValueは空です。 しかし、ItemDataBoundの後にPage_Loadが実行されます。そこで、私はこれらのDropDownListsの価値を得ることができます。

ItemDataBoundの実行時に値を取得する方法はありますか。

ありがとうございました!

フィリップ

答えて

0

あなたは、データバインドにPage.Loadイベントでこれらのドロップダウンリストを必要とします。

ロードライフサイクル中に状態やその他の詳細を取得するWebコントロールがたくさんあります(私は長い間、この種の問題を抱えていました)。

注:私が「状態」と言うとき、私はViewStateについて話していません。

なぜ、ロードイベント後にデータバインドを実行しないのですか?

+0

これらのドロップダウンリストは、すでにpage_loadイベントでバインドされています。私が 'if(!IsPostBack)'を外側に置くと、選択した値がポストバックの後にリセットされます。また、RepeaterのItemBoundイベントでは、SelectedValueはまだnullです。 – Filip

+0

ItemDataBoundはRepeaterのイベントですが、私はあなたが "実行命令"を変更することはできないと思いますか? – Filip

+0

このイベントは、コントロール内でDataBind()を呼び出すと呼び出されます。 –

0

ページのPreInitイベントでドロップダウンリストの選択値を取得できますか?その場合は、それらをビューステートに格納し、リピーターのアイテムデータバインドイベント中にビューステートからそれらを取得します。

これでうまくいかない場合は、選択したインデックス変更イベントを各ドロップダウンに追加してみてください。ドロップダウンが変更されると、リピーターのアイテムデータバウンドイベント中に取得できるビューステート変数を設定します。データベースから読み込むときなど、ページのロード中にドロップダウンを設定する値がある場合は、それらの値を使用して適切なビューステート変数を直接設定します。

関連する問題