【发布时间】:2018-06-04 10:39:45
【问题描述】:
我正在尝试根据我的数据库中的项目动态添加一些TextBoxes 控件。这是我在.aspx 页面中的asp:PlaceHolder
<asp:PlaceHolder ID="PlaceHolderHTML" runat="server"></asp:PlaceHolder>
现在我正在尝试从 C# 代码创建动态 HTML,然后将该 html 呈现到 asp:PlaceHolder。
这是我的 C# 代码:
StringBuilder data = new StringBuilder();
foreach (SPListItem item in collitem)
{
data.Append(@"
<tr>
<th class='accordionSection esEmplCardSectionHeader'>
<span id='lblSectionName'>
<asp:TextBox ID='TextBox" + item["ID"].ToString() + @"' runat='server'></asp:TextBox>
</span>
</th>
</tr>
}
PlaceHolderHTML.Controls.Add(new Literal { Text = data.ToString() });
但在浏览器中,TextBox 控件未显示。当我检查元素文本框时,我看到以下结果:
所以发送到asp:PlaceHolder的html里面的textbox,浏览器不知道它是asp控件,在浏览器中什么也没有显示,那么如何解决这个问题呢?
【问题讨论】:
-
您不能只附加 ASPX 服务器端标记并期望引擎正确呈现它。这不是它的工作方式。如果可以,最好避免动态添加控件。
标签: c# html asp.net web sharepoint