c# - 如何将在代码隐藏中创建的控件放置在页面上?

标签 c# asp.net

protected void Page_Load(object sender, EventArgs e)
{

Label myLabel = new Label();
myLabel.Text = "Testing 1 2 3";
}

如果我在后面的代码中创建了这个 Label 对象,并且它在主页上没有 < asp:Label > 标签,我如何将这个 Label 放在页面的某个地方?

我想根据数据库中的信息动态创建控件。从那里,我想将控件放在网页上。我无法为它们预定义位置,因为控件的数量和类型会发生变化。

执行此操作的最佳方法是什么?

如果我的页面上已经有一些东西,例如表格,并且我想将控件放在表格末尾之后怎么办。

最佳答案

您必须将它添加到页面的某个控件集合中。

this.Controls.Add(myLabel);

我不会将其直接添加到页面,而是使用 PlaceHoldersPanels 作为容器控件。您最迟需要使用与以前相同的 ID 在 page_load 中的每个回发中重新创建动态创建的控件(以重新加载 ViewState 和触发事件)。

您应该使用 CSS 来控制控件的布局。

另一种方法是使用 web databound controlRepeater 这样更容易,并且会自动维护控件及其状态。

关于c# - 如何将在代码隐藏中创建的控件放置在页面上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640399/

相关文章:

c# - 在 C# MVC 的 Jquery 中使用 CSS 文件

c# - 根据用户确定在 Json.Net 中序列化的属性

asp.net - DropDownList 值到 DataType.Date 模型 (ASP.NET MVC 4)

c# - Javascript 和必填字段验证器

c# - 如何设置IIS网站的默认编码?

c# - 我实现 IEnumerator 和 IEnumerable 的类不会转到 foreach 语句

c# - 如何在 UWP App 中创建信息提示通知

c# - C# 中使用 JavaScriptSerializer 的 JSON 列表

asp.net - 如何通过电子邮件向ASP.NET错误发送电子邮件

html - V 对齐顶部在 TD 内不起作用