在Asp.net中添加自定义控件

时间:2009-03-16 16:13:52

标签: asp.net sharepoint controls

我正在创建一个新面板..

 public class LicensingPanel : Panel
{
     private LinkButton licenseButton;
    ...
}

然后我在代码中将控件添加到Controls属性,其中一个是LinkBut​​ton。

我希望能够在我的页面代码后面执行以下操作。

protected override void CreateChildControls()
{
    Controls.Add(new LicensingPanel(this));

    base.CreateChildControls();
}

但我收到此错误消息:

'LinkBut​​ton'类型的控件'ctl03'必须放在带有runat = server的表单标签内。在System.Web.UI.Page.VerifyRenderingInServerForm(控制控件)

该页面是一个带有母版页的SharePoint页面,它有一个带有runat = server的Form标签。

非常感谢任何帮助!

最诚挚的问候,

菲尔

4 个答案:

答案 0 :(得分:4)

任何包含MasterPage的页面,无论是否在SharePoint中,都是内容页面。这些页面仅支持内容控件中包含的内容。不支持尝试直接向页面添加HTML标记或ASP.NET控件。

答案 1 :(得分:0)

页面上的哪个位置是您对LicensingPanel类型的控制?此控件需要位于表单标记内。

答案 2 :(得分:0)

我认为你应该告诉我们你想要用你的代码存档的内容。 你想在哪里添加你的控件?

答案 3 :(得分:0)

我认为您需要先完成一些步骤才能在MOSS 2007环境中使用某个控件:

  1. 您必须将自定义控件DLL注册为安全。
  2. 您必须在母版页中注册自定义控件,服务器才能识别该标记。
  3. FOR DLL:<%@ Register TagPrefix =“customcontrolname”Namespace =“MyCustomControl”Assembly =“MyCustomControl,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 123456789abcdefg”%>

    FOR ASCX:<%@ Register Src =“〜/ Controls / MyCustomControl.ascx”TagName =“MyCustomControl”TagPrefix =“customcontrolname”%>