2009-06-18 7 views
3

사용자가 항목을 선택하고 관련 결과를 볼 수 있도록 DropDownList 컨트롤을 사용하는 ASP.NET 웹 폼이 있습니다. 어떤 이유로 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"; 
} 

이 ... 잘 작동해야합니다.

실행 지연, 실행 순서 만은 없습니다.

관련 문제