2016-03-24 18 views
0

ページドロップダウンボックス(selUsers)がpageloadのデータベースから読み込まれるページがあります。ドロップダウン選択項目が正しく設定されていません

LoadCompleteで、私は値をマザーページから設定しています。

selUsers.SelectedValue = master.intUserID 

これは、正しいテキストがドロップダウンボックスに表示されるため、正しく動作するように見えます。

サブを呼び出すボタンがあります。そのサブネットでは、私はselUsers.SelectedItem.ValueまたはselUsers.SelectedValueを呼び出します。ドロップダウンボックスの最初の項目の値は、選択した項目ではありません。

私は読んでいて、値を設定するコードはispostbackにある必要がありますが、私はそのページをポストしていませんしたいと思いません。ドロップダウンの値を設定しても、ページをポストバックするまで本当に設定されているのは本当ですか?そうでない場合、なぜ私は正しい値を得ていないのですか?

私が尋ねる前に、私はコードを精査しましたが、それ以外の場所ではリバウンドしているドロップダウンや値がリセットされていません。

答えて

0

ページライフサイクル全体が混乱する可能性があります。

私はこの(記事:ASP.NETページのライフサイクルの概要)読むことをお勧めするhttps://msdn.microsoft.com/en-us/library/ms178472.aspx

をしかし、あなたの質問に答えるために:あなたは、そのボタンをクリックすると

は、次はこの中で起こります

1)ページロードイベントが発生します。これはデータとデータバインドを取得する場所で、ドロップダウンリストの選択された値も「リセット」されます。

2)ボタンのクリックイベントが発生しました(これはアイテムイベントです): を読み込みたい値を読み込みましたが、まだLoadCompleteに達していないため(新しい選択値を設定します) )リストの最初の値が表示されます。

3)ロード完了イベントが発生しました。ここで正しい選択値を設定します。

したがって、asp Webフォームのボタン(デフォルト)をクリックすると、ポストバックが発生し、ページ全体のライフサイクルを経て、アクションに対する「レスポンス」が作成されます。ページを作成する際にこれを考慮する必要があります。

これはデバッグ中に実際に動作しています。コードビハインドファイルの3つのポイントにブレークポイントを置き、ボタンをクリックします。

問題を解決するには、ドロップダウンリストをデータバインドしてから、選択した値を読み取る前に、選択した値を設定する必要があります。

これが役に立ちます。

関連する問題