2011-06-15 27 views
0
protected void Page_Load(object sender, EventArgs e) 
{ 
    Button b = new Button(); 
    b.Text = "1"; 
    this.Controls.Add(b); 
} 

儿童页开始是这样的:我不能将按钮添加到页面

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"/> 

母版

<div align="center" runat="server" > 
     <form id="form1" runat="server"> 
       <asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server"> 
       </asp:ContentPlaceHolder> 
     </form> 
    </div> 

如图所示,控制按钮都在里面

那么,为什么我得到这个:

http://localhost:2427/WebSite10/AllQuestions.aspx

Control 'ctl01' of type 'Button' must be placed inside a form tag with runat=server. 

描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.Web.HttpException:类型为'Button'的控件'ctl01'必须放置在带有runat = server的表单标记中。

+1

发布图像或异常消息。没有人可以访问你的'localhost'。 – Oded 2011-06-15 05:12:14

+0

'Button'类型的控件'ctl01'必须放置在runat = server的窗体标签中。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。 异常详细信息:System.Web.HttpException:类型为'Button'的控件'ctl01'必须放置在带有runat = server的表单标签中。 – Matrix001 2011-06-15 05:27:25

+0

如何使用'placeholder'? – V4Vendetta 2011-06-15 05:30:15

回答

0

在这些线路上的东西应该工作,这将有助于在渲染控制

Button b = new Button(); 
b.Text = "Click Me"; 
StringWriter tw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
b.RenderControl(hw); 
Response.Write(hw.InnerWriter); 

或者你也可以通过PlaceHolder

<asp:PlaceHolder ID="holder1" runat="server"></asp:PlaceHolder> 

Button b = new Button(); 
b.Text = "Click Me"; 
holder1.Controls.Add(b); 
+0

Awesome..man..what..what ..是那个地方持有人?......我可以把那个占位符放到一张桌子里吗? – Matrix001 2011-06-15 05:47:41

+0

是的..你可以 – V4Vendetta 2011-06-15 05:49:55

-1

尝试将其检疫侦缉犬到的ContentPlaceHolder,而不是页面本身

+0

我不知道该怎么做 – Matrix001 2011-06-15 05:28:08

+0

为什么你会失望呢,它仍然是解决方案,为什么你不知道如何,它的作品一样的表格/网页 – killie01 2011-06-16 13:45:03

相关问题