2012-01-31 55 views
1

我已經創建了4個或多或少具有相同屬性的用戶控件。以下是用戶控件源的示例:設置用戶控件屬性的值 - C#

<div> 
    <asp:Label runat="server" ID="LabelPrompt"></asp:Label> 
    <telerik:RadComboBox runat="server" ID="ComboBoxInput"></telerik:RadComboBox> 
</div> 

當頁面加載時,我需要更改LabelPrompt的值。這是我在做什麼:

   Control p = LoadControl("~/Parameters/TextBoxParameterUserControl.ascx");      
       p.GetType().GetProperty("LabelPrompt").SetValue(p, "AAAA", null); 
       PanelParametersList.Controls.Add(p); 

以前我試圖使用下面的代碼添加用戶控件,但它沒有工作。另一個線程建議我使用上面的代碼,這可以工作(將控制添加到視圖中)。

PanelParametersList.Controls.Add(new TextBoxParameterUserControl()); 

無論如何,編譯器會抱怨在下面一行:

p.GetType().GetProperty("LabelPrompt").SetValue(p, "AAAA", null); 

但是這並未;噸的工作,它說:「沒有對象設定爲基準」 ......我在做什麼錯誤?

p.s.我知道超/分類是可能的,但這不是我所追求的!

+0

對不起,您的aspx頁面中沒有用戶控件? – 2012-01-31 10:09:07

回答

1

你有沒有嘗試這樣的事情(我希望你是故意在運行時加載這些控件?):

TextBoxParameterUserControlic control = LoadControl("~/Parameters/TextBoxParameterUserControl.ascx") as TextBoxParameterUserControl; 
if(control != null) 
{ 
    control.LabelPrompt = "AAAA"; 
    PanelParametersList.Controls.Add(p); 
} 

當然的LabelPrompt屬性必須是public