2011-12-21 42 views
0

我已经编写了一个模板用户控件MinimalTemplate,它除了将HTML传递到其“ContentTemplate”占位符外,目前只做其他事情。我希望Visual Studio 2008对MinimalTemplate具有与内置模板化控件(如Repeater)相同的intellisense功能。用于模板用户控件标签的智能感知

enter image description here

enter image description here

可能相关的:我可以手动输入了我的ContentTemplate标记,它会建立和正常运行,但我得到一个验证错误。我已经删除了我的ReflectedSchemas文件夹的内容,如this question中所建议的。

enter image description here

为最小化的模板完整源:

MinimalTemplate.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MinimalTemplate.ascx.cs" Inherits="MyProject.MinimalTemplate" %> 
<asp:placeholder runat=server id="contentPlaceHolder" /> 

MinimalTemplate.ascx.cs

using System.Web.UI; 

namespace MyProject 
{ 
    [ParseChildren(false)] 
    public partial class MinimalTemplate : System.Web.UI.UserControl 
    { 

     [TemplateContainer(typeof(MessageContainer))] 
     [TemplateInstance(TemplateInstance.Single)] 
     public ITemplate ContentTemplate 
     { get; set; } 

     void Page_Init() 
     { 
      if (ContentTemplate != null) 
      { 
       MessageContainer container = new MessageContainer(); 
       ContentTemplate.InstantiateIn(container); 
       contentPlaceHolder.Controls.Add(container); 
      } 
     } 

     public class MessageContainer : Control, INamingContainer { } 
    } 
} 

我可以让我的MinimalTemplate代码哪些变化以便Visual Studio将验证一个自动完成其ContentTemplate标签?

回答

0

Related

[PersistenceMode(PersistenceMode.InnerProperty)]添加到ContentTemplate的属性列表。在添加并重建之后,验证错误消失,并且在Intellisense下拉菜单中按预期显示“ContentTemplate”。

在我的调查中,我确定我尝试添加此属性两到三次无效,所以我期望VS验证器有点片状。它有voodoo programming,但做一个清洁/重建所有,并等待几秒钟,然后再看看验证错误是否持续。

(此外,您不需要此控件的ParseChildren属性。)