设置用户控件的属性值-C#

本文关键字:-C# 属性 用户 控件 设置 | 更新日期: 2023-09-27 18:21:54

我创建了4个或多或少具有相同属性的用户控件。以下是用户控件的来源示例:

<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); 

但事实并非如此;不起作用,它说"对象未设置为引用"。。。。。我做错了什么?

附言:我知道超/次分类是可能的,但这不是我想要的!

设置用户控件的属性值-C#

您是否尝试过这样的操作(我希望您有意在运行时加载这些控件?):

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

当然,LabelPrompt属性必须是public