代码之家  ›  专栏  ›  技术社区  ›  Serge

ASP.NET控件不呈现

  •  1
  • Serge  · 技术社区  · 15 年前

    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() 不会被处决。

    谢谢

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

    2 回复  |  直到 15 年前
        1
  •  3
  •   Cerebrus    15 年前

    您应该尝试以下方法:

    System.Web.UI.Control.WebControl

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

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

    <%@ Register TagPrefix="Custom" Assembly="CORE.BusinessObjects" Namespace="CORE.BusinessObjects.Web.Controls" %>
    <Custom:TestControl ID="testControl" runat="server" Visible="true" />
    
        2
  •  1
  •   Chris Herring    15 年前

    尝试从CompositeControl或WebControl继承