2009-06-18 11 views
3

DropDownListコントロールを使用してアイテムを選択し、関連する結果を表示できるASP.NET Webフォームがあります。何らかの理由で、DropDownListのSelectedValueプロパティを設定したときに、その値がすぐに使用できなくなりました。ここでASP.NET DropDownList SelectedValueプロパティがすぐに設定されていません

は私のコードです:前のコードで

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     DropDownList1.SelectedValue = "5"; 
     BindView(); 
    } 
} 

protected void BindActivities() 
{ 
    DataClassesDataContext dc = new DataClassesDataContext(); 
    var query = from activity in dc.Activities 
       where activity.AssignedTo == Convert.ToInt32(DropDownList1.SelectedValue); 
    GridView1.DataSource = query; 
    GridView1.DataBind(); 
} 

私はDropDownList1.SelectedValueがnullのエラーが発生します。私は、DropDownList1.SelectedValueを使用してページを読み込ませるコードをコメントアウトすると、DropDownList1は実際には値5に設定されているので、正しく設定されているように見えますが、すぐには使用できません。デバッガは、DropDownList.SelectedValueが、それを設定するコード行の直後に5に設定されていないことを確認します。

ここで何が起こっているのですか?

答えて

7

ドロップダウンリストをバインドする前に値を設定していますか?

+1

DropDownListは、宣言的にLinqDataSourceコントロールにバインドされています。私はPage_Loadイベントの前に起こると思う。あれは正しいですか? – joshb

+1

明示的に呼び出さない限り –

+0

SelectedValueを設定する直前にDropDownList1.DataBind()への明示的な呼び出しを追加しました。 – joshb

2

はい以上のユーザーが

if (!Page.IsPostBack) 
{ 
    BindView(); 
    DropDownList1.SelectedValue = "5"; 
} 

右です...うまく動作するはずです。

実行の遅れ、実行の順番などはありません。

関連する問題