2011-08-13 18 views
2

我有一個名爲dropdownlist.ascx的通用控件,它基於XML文檔和我傳遞給此控件的屬性填充它的ListItems。C#訪問位於用戶控件內的DropDownList項值

該控件在相同的aspx頁面上多次使用。在aspx頁面的Page_Load事件中將此控件強制轉換爲DropDownList控件沒有任何問題,但是,當我想要在Aspx頁面的Page_Load事件中設置此控件的SelectedValues時,它不會像Items.Count值那樣工作是0.

我假設這裏有一些Page Lifecyle問題。在page.aspx

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

代碼隱藏

控制上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;   

    } 
} 

列表ddlHeight的項目渲染沒有問題。

任何人有任何想法或解決方案?

感謝,

+0

這對我來說很合適。我唯一能想到的就是你的ascx文件被命名爲dropdownlist,它可能與System.Web.UI.WebControls.DropDownList衝突。 –

回答

1

嘗試設置在Page_PreRender事件SelectedValue。它會工作。

+0

實際上,我只是通過將我的usercontrol的Page_Load事件設置爲Page_Init,然後在ASPX頁面之前進行呈現來實現此目的。 – squareOne

+0

你的作品也是如此。謝謝:) – squareOne

+0

You DropDownList很可能還沒有被數據綁定(.DataBind())在PageLoad中,所以在PreRender中的確應該這樣做。 – Oli

相關問題