【问题标题】:Control 'ctl07' of type 'TextBox' must be placed inside a form tag with runat=server.“TextBox”类型的控件“ctl07”必须放在带有 runat=server 的表单标记内。
【发布时间】:2012-10-09 01:35:36
【问题描述】:

我有一个问题,你可以在标题中看到。

 <form id="form1" runat="server">
    <div>
        <br />
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
        <asp:TextBox ID="mac_id" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
            Text="Temp Ekle" />
    </div>
    </form>

在 aspx.cs 中,我创建了一个表,并将数据库中的一些值插入到名为“mac_id”的文本框中。

TableCell cel = new TableCell();
mac_id.Text = Convert.ToString(myDataTable.Rows[0][2]);
cel.Controls.Add(mac_id);
rw.Cells.Add(cel);

它在表单标签内,它是 runat="server"。这是使用 mac_id 文本框的代码。没有操作该文本框的代码。我只想向用户显示 id。我没有使用任何渲染控件或文本框具有的东西。我还检查了其他解决方案,但它们都在使用渲染或编写器我不是那是因为我打开了一个新问题。 我希望我能充分解释我的问题。感谢您的帮助。

【问题讨论】:

  • 最后一行的rw 是什么?
  • 如果我正确理解您的情况,您已经有一个 TextBox mac_id,然后您正试图将控件移动到代码后面的表格单元格中?我会删除你的 aspx 文件中的 TextBox,然后在后面的代码中创建 Textbox 控件。
  • rw 是我的表格行@mcalex 我现在正在尝试建议 nicole
  • 您的问题根本无法回答。它很难猜测和回答,对 ;-)

标签: c# asp.net .net runatserver


【解决方案1】:

您可以通过覆盖 VerifyRenderingInServerForm 来避免这种情况

public override void VerifyRenderingInServerForm(Control control)
{
  /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
     server control at run time.
     Hence, no exception. */
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 2017-08-27
相关资源
最近更新 更多