2011-08-13 8 views
2

私は、このコントロールに渡すXMLドキュメントとプロパティに基づいてListItemsを読み込むdropdownlist.ascxという汎用コントロールを持っています。C#ユーザーコントロール内にあるDropDownList項目値へのアクセス

このコントロールは、同じaspxページで複数回使用されます。私はこのコントロールをaspxページのPage_LoadイベントのDropDownListコントロールとしてキャストしても問題ありませんが、aspxページのPage_LoadイベントでこのコントロールのSelectedValuesを設定したい場合、Items.Count値として機能しません

ここでは、ページライフサイクルの問題が発生していると想定しています。 ddlHeightのリスト項目は問題なくレンダリングpage.aspxの分離コード

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;   

    } 
} 

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

page.aspx上

コントロール。

誰にでもこれに関するアイデアや解決策はありますか?

おかげで、

+0

これはわかりました。私が考えることができる唯一のことは、ascxファイルの名前がSystem.Web.UI.WebControls.DropDownListと競合する可能性のあるドロップダウンリストです。 –

答えて

1

SelectedValuePage_PreRenderでイベントを設定してください。それが動作します。

+0

私は実際にこれを動作させるが、ASPXページの前にレンダリングするように、私のusercontrolのPage_LoadイベントをPage_Initに設定することによって得られる。 – squareOne

+0

あなたもうまくいきます。ありがとう:) – squareOne

+0

あなたDropDownListは、おそらくPageRoadでデータバインドされていない(.DataBind())ので、実際にはPreRenderでそれをやって動作するはずです。 – Oli

関連する問題