类型“文字框”的控制“ctl07”必须放在与RUNAT =服务器form标签的内部。(Control

2019-10-17 07:56发布

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

 <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 =“服务器”。这是代码,使用MAC_ID textbox.there没有代码,操作这些textbox.I只想向用户显示id.I我不使用任何渲染控制或文本框has.I还检查其他solutins但它们都使用,因为我打开一个新的问题呈现或作家我不是多数民众赞成什么。 我希望我能解释我的问题enough.Thanks帮助。

Answer 1:

您可以通过覆盖VerifyRenderingInServerForm避免这种execption

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. */
}


文章来源: Control 'ctl07' of type 'TextBox' must be placed inside a form tag with runat=server.