1

我创建了一个采用自定义模板的自定义控件。但是没有智能感知支持,并且有这个 xhtml 错误。自定义控件的标记

我检查了一些问题;这篇文章说我们必须默认获取它。但是我一直没有得到它。我错过了一些事情要做吗?

代码如下所示:

服务器控制:

[ToolboxData("<{0}:CustomTemplateControl runat=server></{0}:CustomTemplateControl>")]
[Description("My Custom Template Control")]
public class CustomTemplateControl : WebControl
{
    [TemplateContainer(typeof(CustomTemplateItem))]
    public ITemplate CustomHeader { get; set; }

    protected override void CreateChildControls()
    {
        if (CustomHeader != null)
        {
            CustomHeader.InstantiateIn(this);
        }
        base.CreateChildControls();
    }
    public override void RenderBeginTag(HtmlTextWriter writer)
    {
        writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID);
        writer.RenderBeginTag(HtmlTextWriterTag.Label);

        //base.RenderBeginTag(writer);
    }

模板:

public class CustomTemplateItem : Control, INamingContainer
{

}
4

1 回答 1

1

您将必须创建一个描述您的自定义控件的架构文件,并在任何 VS 项目中引用该架构文件。你用它。

xhtml 不喜欢大写字符。可能必须更改所有小写字符的自定义控件属性。

于 2012-07-25T22:19:18.127 回答