动态添加表单元素 ASP.NET 时,将 HTML 添加到服务器表单



我有一个数据库表,用于存储某些表单的自定义字段。我正在从后面的代码动态构建这些表单,它可以工作,但它看起来很糟糕。我希望能够将表单包装在表中。

我有以下代码来动态创建表单元素。通过使用循环,我可以为每个自定义字段创建一个标签和输入框

Label label = new Label();
label.Text = field["fieldname"];
newclientform.Controls.Add(label);
TextBox textinput = new TextBox();
textinput.ID = field["uiname"];
newclientform.Controls.Add(textinput);

所有静态表单元素都正确包装在 HTML 中,因为我可以将其写入 aspx 文件,但这些动态元素都没有包装在 HTML 中。我尝试了以下内容,但没有呈现任何 HTML

label.Text = "<tr><th>" + field["fieldname"] + "</th></tr>";

如何将这些表单元素包装在 HTML 中?

我可以建议你使用中继器或任何其他类似的功能。在代码隐藏处创建一个中继器,使用文本对象插入正确的 html 标记,然后放置文本框,并用另一个文本关闭它。

Literal 是将 HTML 代码发送到接口的最干净的对象,因为 Label 对象使用不必要的 HTML 标记呈现,这可能首先会导致您的问题。

首先,我的英语很差。以你的方式,我不知道你能不能做到,但我认为您需要尝试此控件----占位符。

<asp:PlaceHolder ID="placeHolderId" runat="server">
     on here, you can write any dom element
</asp:PlaceHolder>

在代码隐藏中,就像那样--------

 placeHolderId.Controls.Add(yourControlObject);

最新更新