为什么
Dim img As New System.Web.UI.WebControls.Image
img.ID = "img1"
Page.Controls.Add(img)
可以创建,而
Dim imgButton As New System.Web.UI.WebControls.ImageButton
imgButton.ID = "imgbutton1"
Page.Controls.Add(imgButton)
却提示类型“ImageButton”的控件“imgbutton1”必须放在具有 runat=server 的窗体标记内?我要直接在page中创建ImageButton控件应该怎么写?

解决方案 »

  1.   

    你可以这样创建.
    Page.Controls[1].Controls.Add(imgButton)你上面的做法是因为创建的控件将显示在form标记之外.
      

  2.   

    ???
    在代码中都通不过阿
    Controls[1]这个是什么?
      

  3.   

    楼主要清楚这个page指的是body部分,不是form,其实form本身也是一个控件,所以你只需这样Dim form As HtmlForm=Ctype(Page.FindControl("form1"),HtmlForm)
    注意这里的form1是在aspx页面看到那个<form id="form1">然后form.Controls.Add(yourcontrol)===========================================
    这样就可以了.
      

  4.   

    楼主,你如果要动态创建控件的话,最好不要page.control.add,你可以在页面里先加一个空的<div id="div1" runat="server">,然后在用div1.controls.add