控制< ctl07'类型' TextBox'必须放在带有runat = server的表单标记内。

时间:2012-10-18 14:42:07

标签: c# asp.net .net runatserver

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

 <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);

它在form标签内,它是runat =“server”。这是使用mac_id textbox的代码。没有操作该文本框的代码。我只想向用户显示id。我没有使用任何渲染控件或文本框具有的东西。我也检查其他solutins但他们都使用渲染或编写器我不是那个因为我打开一个新的问题。 我希望我能够解释我的问题。谢谢你的帮助。

1 个答案:

答案 0 :(得分: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. */
}