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

时间:2016-03-18 14:40:34

标签: html asp.net forms

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

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

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中包装这些表单元素?

2 个答案:

答案 0 :(得分:0)

我建议您使用转发器或任何其他类似功能。在codebehind创建一个转发器,使用文字对象插入正确的html标签,然后放置文本框,并用另一个文字关闭它。

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

答案 1 :(得分:0)

首先,我的英语很差。 在你的方式,我不知道你是否可以成功, 但我认为你需要尝试这个控件---- PlaceHolder。

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

,就像--------

 placeHolderId.Controls.Add(yourControlObject);