Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态加载对象c#_C#_Asp.net_Object_Dynamic_Load - Fatal编程技术网

动态加载对象c#

动态加载对象c#,c#,asp.net,object,dynamic,load,C#,Asp.net,Object,Dynamic,Load,我有一个asp.net项目,在我的设计页面中,我有一些asp:Label对象,它们的名称类似于aLabel0、aLabel1、aLabel2…aLabel9。如果我不想从我的aspx.cs页面动态创建它们并将它们添加到像asp:Panel这样的容器中,有没有办法将它们从aspx页面动态加载到aspx.cs页面 大概是这样的: for(int i = 0; i < 10; i++) { Label tempLabel = LoadDynamically("aLabel" + i.To

我有一个asp.net项目,在我的设计页面中,我有一些
asp:Label
对象,它们的名称类似于aLabel0、aLabel1、aLabel2…aLabel9。如果我不想从我的aspx.cs页面动态创建它们并将它们添加到像
asp:Panel
这样的容器中,有没有办法将它们从aspx页面动态加载到aspx.cs页面

大概是这样的:

for(int i = 0; i < 10; i++)
{
    Label tempLabel = LoadDynamically("aLabel" + i.ToString());
}
for(int i=0;i<10;i++)
{
Label tempLabel=LoadDynamic(“aLabel”+i.ToString());
}
您可以使用


听起来像是asp:Repeater的工作。如果您觉得必须(不必),也可以在aspx中定义中继器的数据源。然后,只需在标签中创建相应的注入值

如果您询问如何动态创建控件,您可以这样做:

Label lb = new Label();
lb.ID = "aLabel0";
lb.Text = "I'm label #0";
Page.Controls.Add(lb);

前三行创建标签,最后一行将其添加到容器中。在本例中,我使用了
Page
,但您可以使用任何容器控件。

为什么不在代码隐藏(aspx.cs)中添加它们呢?我在面板中有一些asp控件(标签文本框文本),我想重复它们并从javascript调用它们(使用ClientID)。动态创建它们更合适,但我发现在我的aspx表单中添加它们更容易。我的问题是代码行太多,无法在代码中编写foreach控件来添加javascript事件(使用aLabel0.Attributes.add(eventName,eventFunction)方法)。我的查询的答案是FindControl方法。
Label lb = new Label();
lb.ID = "aLabel0";
lb.Text = "I'm label #0";
Page.Controls.Add(lb);