我使用的是asp.net 4.0。
现在我想使用javascript在客户端创建一些内容:
<div id="xx" runat="server"></div>
然后在服务器端,我希望获得此控件并填充一些内容,例如:
FindControl("xx").Controls.Add(....);
似乎这不起作用。由于服务器端进程在客户端进程之前工作。
还有其他想法吗?
答案 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。