【问题标题】:asp:TextBox is not working inside asp:Placeholder C#asp:TextBox 在 asp:Placeholder C# 中不起作用
【发布时间】: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


【解决方案1】:

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

您将希望使用新的 TextBox 添加控件。

你可能会发现放弃 asp 文本框更容易,只使用你管理名称并在回发时获取值的原生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2011-04-27
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多