我正在尝试根据数据库中的项动态添加一些TextBoxes
控件。这是asp:PlaceHolder
页面中的.aspx
<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
控件。当我在文本框中查看元素时,我看到以下结果:
所以h textbox
里面的html被发送到asp:PlaceHolder
,浏览器不知道它是asp控件,在浏览器中没有显示任何内容,那么如何解决这个问题?
答案 0 :(得分:1)
我相信文字控件仅适用于原生html。看一下渲染的源代码。我相信你会在源代码中看到你的服务器端标记。
您需要使用新的TextBox添加控件。
您可能会发现将asp文本框放在一起更容易,只需使用管理名称的本机并在回发时获取值。