asp:TextBox在asp内部不起作用:占位符C#

时间:2017-12-21 17:52:38

标签: c# html asp.net web sharepoint

我正在尝试根据数据库中的项动态添加一些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控件。当我在文本框中查看元素时,我看到以下结果: enter image description here

所以h textbox里面的html被发送到asp:PlaceHolder,浏览器不知道它是asp控件,在浏览器中没有显示任何内容,那么如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我相信文字控件仅适用于原生html。看一下渲染的源代码。我相信你会在源代码中看到你的服务器端标记。

您需要使用新的TextBox添加控件。

您可能会发现将asp文本框放在一起更容易,只需使用管理名称的本机并在回发时获取值。