我有一个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中包装这些表单元素?
答案 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);