Asp.net 隐藏Asp中继器的页脚模板

Asp.net 隐藏Asp中继器的页脚模板,asp.net,controls,Asp.net,Controls,我需要建议!因此,我有一个自定义转发器,在自定义控件中写入页脚,代码如下: [ParseChildren(true)] [PersistenceMode(PersistenceMode.InnerProperty)] [DefaultProperty("Text")] [ToolboxData("<{0}:CustomRepeater runat=server></{0}:CustomRepeater>")] public class CustomRepeater :

我需要建议!因此,我有一个自定义转发器,在自定义控件中写入页脚,代码如下:

 [ParseChildren(true)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[DefaultProperty("Text")]
[ToolboxData("<{0}:CustomRepeater runat=server></{0}:CustomRepeater>")]
public class CustomRepeater : Repeater
{
    [PersistenceMode(PersistenceMode.InnerDefaultProperty),
     TemplateContainer(typeof(GuessFooterTemplate))]                       
    private ITemplate FooterTemp {get; set;}

    protected override void InitializeItem(RepeaterItem item)
    {
        base.InitializeItem(item);
        FooterTemp = new GFooterTemplate();
        this.FooterTemplate = FooterTemp;                                     
    }


    //Here I try to hide the footer template
    [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    public override ITemplate FooterTemplate
    {
        get
        {
            return base.FooterTemplate;
        }
        set
        {
            base.FooterTemplate = value;
        }
    }


}

internal class GFooterTemplate : ITemplate
{
    PlaceHolder ph = new PlaceHolder();
    public void InstantiateIn(Control Container)
    {
        ph.Controls.Add(new LiteralControl("Test for Footertemplate"));
        Container.Controls.Add(ph);
    }

}
[ParseChildren(true)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[默认属性(“文本”)]
[ToolboxData(“”)
公共类CustomRepeater:Repeater
{
[PersistenceMode(PersistenceMode.InnerDefaultProperty),
TemplateContainer(typeof(GuessFooterTemplate))]
私有ITemplate FooterTemp{get;set;}
受保护的覆盖无效初始值项(RepeaterItem项)
{
基础。初始化项(项目);
FooterTemp=新的GFooterTemplate();
this.FooterTemplate=FooterTemp;
}
//在这里,我试图隐藏页脚模板
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
公共覆盖项模板
{
得到
{
返回base.footer模板;
}
设置
{
base.FooterTemplate=值;
}
}
}
内部类GFooterTemplate:ITemplate
{
占位符ph=新占位符();
公共容器(控制容器)
{
添加(新的文字控制(“页脚模板测试”);
容器。对照。添加(ph);
}
}
因此,由于页脚是以编程方式编写的,我想为使用自定义转发器的人隐藏页脚模板。。我在想,
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
可以做到,但显然不行。。有人有主意吗


非常感谢

如果我理解正确,您不希望您的
CustomRepeater
用户能够修改
页脚模板

我认为有两种可能的解决方案:

使用属性上的修改器完全重新定义属性:

private new ITemplate FooterTemplate  
{  
  get { return base.FooterTemplate; }  
  set { base.FooterTemplate = value; }  
}
或将setter修改为不执行任何操作,从而阻止修改:

public override ITemplate FooterTemplate
{
  get
  {
    return base.FooterTemplate;
  }
  set
  {
    /* base.FooterTemplate = value; */
  }
}

HTH

如果我理解正确,您不希望您的
CustomRepeater
的用户能够修改
页脚模板

我认为有两种可能的解决方案:

使用属性上的修改器完全重新定义属性:

private new ITemplate FooterTemplate  
{  
  get { return base.FooterTemplate; }  
  set { base.FooterTemplate = value; }  
}
或将setter修改为不执行任何操作,从而阻止修改:

public override ITemplate FooterTemplate
{
  get
  {
    return base.FooterTemplate;
  }
  set
  {
    /* base.FooterTemplate = value; */
  }
}