2011-08-13 3 views
2

나는이 컨트롤에 전달하는 XML 문서와 속성을 기반으로 ListItems를 채우는 dropdownlist.ascx라는 일반 컨트롤을 가지고 있습니다.C# 사용자 컨트롤 내에있는 DropDownList 항목 값에 액세스

이 컨트롤은 동일한 aspx 페이지에서 여러 번 사용됩니다. aspx 페이지의 Page_Load 이벤트에서 DropDownList 컨트롤로이 컨트롤을 형 변환하는 데 문제가 없지만 aspx 페이지의 Page_Load 이벤트에서이 컨트롤의 SelectedValues를 설정하려고 할 때 Items.Count 값으로 작동하지 않습니다.

여기 페이지 라이프 사이클 문제가 있다고 가정합니다.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     UserProfile profile = controls_session.profile; 

     DropDownList _ddlHeight = (DropDownList)ddlHeight.FindControl("dropdownlist"); 

     _ddlHeight.SelectedValue = profile.Height;   

    } 
} 

ddlHeight의 항목이 문제없이 렌더링리스트 page.aspx에

<triangle:DDLResponse ID="ddlHeight" runat="server" CssClass="dropdownlist ddlregister" responseId="height" mode="dropdownlist" /> 

Codebehind가

page.aspx

제어.

누구든지 이에 대한 아이디어 나 해결책이 있습니까?

감사합니다,

+0

이것은 나에게 잘 보입니다. 내가 생각할 수있는 유일한 점은 ascx 파일의 이름이 System.Web.UI.WebControls.DropDownList와 충돌 할 수있는 dropdownlist입니다. –

답변

1

봅니다 Page_PreRender 이벤트에 SelectedValue 설정합니다. 효과가있을 것입니다.

+0

실제로이 작업을 할 수 있지만 ASPX 페이지 전에 렌더링되도록 내 usercontrol Page_Load 이벤트를 Page_Init 설정하여. – squareOne

+0

너도 네 작품. 감사합니다 :) – squareOne

+0

당신 DropDownList 가능성이 실제로 DataBound (. DataBind()) 아직 PageRoad에되지 않았습니다 그래서 실제로 PreRender에서 일을해야 일을. – Oli

관련 문제