ASP.NET控件不呈现

时间:2009-03-12 05:21:05

标签: asp.net controls render

我有一个非常简单的控件,我试图渲染看起来像这样:

using System;
using System.Web;
using System.Web.UI;

namespace CORE.BusinessObjects.Web.Controls
{
    public class TestControl : Control
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write("Hello from TestControl!");
        }
    }
}

我按以下方式调用控件:

<%@ Register TagPrefix="Custom" 
             Namespace="CORE.BusinessObjects.Web.Controls" %>    
<Custom:TestControl ID="testControl" runat="server" Visible="true">
</Custom:TestControl>

我做错了吗?我也没能运行我在网上找到的任何对照样本。什么都没有执行。我只能执行控件的构造函数。我尝试覆盖的所有其他方法(如Render()CreateChildControls()都没有执行。

感谢。

编辑:我忘了提到控件包含在带有母版页的页面上。控件实际上在Master页面中运行正常,但不在它之外。

2 个答案:

答案 0 :(得分:3)

您应该尝试以下方法:

一个。继承自System.Web.UI.Control.WebControl类。

湾确保创建控件库,并在相关的Web项目中编译和引用自定义控件库。 (可选)将其添加到工具箱并从那里将其拖到窗体上。这也应该在一步中添加引用。

℃。确保您的控件声明具有Assembly属性,该属性指向引用的控件程序集的名称:

<%@ Register TagPrefix="Custom" Assembly="CORE.BusinessObjects" Namespace="CORE.BusinessObjects.Web.Controls" %>
<Custom:TestControl ID="testControl" runat="server" Visible="true" />

答案 1 :(得分:1)

尝试继承CompositeControl或WebControl

相关问题