1

我有一个非常简单的控件,我正在尝试渲染它,如下所示:

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()不执行的所有其他方法。

谢谢。

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

4

2 回答 2

3

您应该尝试以下方法:

一种。从System.Web.UI.Control.WebControl类继承。

湾。确保您创建了一个控件库,并且您的自定义控件库在相关的 Web 项目中被编译和引用。或者,将其添加到工具箱并从那里将其拖到表单上。这也应该在一步中添加参考。

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

<%@ Register TagPrefix="Custom" Assembly="CORE.BusinessObjects" Namespace="CORE.BusinessObjects.Web.Controls" %>
<Custom:TestControl ID="testControl" runat="server" Visible="true" />
于 2009-03-12T06:42:44.260 回答
1

尝试从 CompositeControl 或 WebControl 继承

于 2009-03-12T06:06:16.467 回答