【问题标题】:I cant add buttons to a page我无法向页面添加按钮
【发布时间】:2011-06-15 05:09:35
【问题描述】:
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 的表单标记内。

【问题讨论】:

  • 张贴图片或异常信息。没有人,但您可以访问您的localhost
  • “按钮”类型的控件“ctl01”必须放在带有 runat=server 的表单标记内。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Web.HttpException:“按钮”类型的控件“ctl01”必须放在带有 runat=server 的表单标记内。
  • placeholder怎么样?

标签: c# asp.net button


【解决方案1】:

这些行应该可以工作,这将有助于渲染控件

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

【讨论】:

  • 太棒了..man..那个占位符是什么?...我可以把那个占位符放到桌子上吗..?
【解决方案2】:

尝试将其 qdd 到 contentplaceholder 而不是页面本身

【讨论】:

  • 那你为什么要投反对票,它仍然是解决方案,为什么你不知道如何,它与表单/网页一样工作
猜你喜欢
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多