在asp.net中填充动态创建的控件。

时间:2013-01-15 03:24:18

标签: asp.net web-controls

我使用的是asp.net 4.0。

现在我想使用javascript在客户端创建一些内容:

<div id="xx" runat="server"></div>

然后在服务器端,我希望获得此控件并填充一些内容,例如:

FindControl("xx").Controls.Add(....);

似乎这不起作用。由于服务器端进程在客户端进程之前工作。

还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

Asp.net需要知道页面上有哪些控件。在javascript中添加元素并稍后将数据接收到后端的控件中是非常简单的。

执行此操作的正确方法是将服务器端的控件添加到控件集合中。

参考:How to: Add Controls to an ASP.NET Web Page Programmatically

Label myLabel = new Label();
myLabel.ID = "myLabel";
myLabel.Text = "Sample Label";
Panel1.Controls.Add(myLabel);

通过someContainer.Controls.Add将控件添加到控件集合后,您可以使用someContainer.FindControl

找到它们
Label myLabel = (Label)someContainer.FindControl("myLabel");

如果您在动态添加控件时不希望出现任何意外,还需要完全了解asp.net page life cycle