设置用户控件的属性值-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);
但事实并非如此;不起作用,它说"对象未设置为引用"。。。。。我做错了什么?
附言:我知道超/次分类是可能的,但这不是我想要的!
您是否尝试过这样的操作(我希望您有意在运行时加载这些控件?):
TextBoxParameterUserControlic control = LoadControl("~/Parameters/TextBoxParameterUserControl.ascx") as TextBoxParameterUserControl;
if(control != null)
{
control.LabelPrompt = "AAAA";
PanelParametersList.Controls.Add(p);
}
当然,LabelPrompt
属性必须是public
。