我自己为repeater写了一个emptytemplate使用时发现,如果repeater的headertemplate或者footertemplate里有内容,我的这个template不会呈现在
header和footer的中间,而是会在footer的后面,我很郁闷,怎么办?比如
<headerT...>
<table>
</headrT...><myTemplate>
fdksjfkd
</myTempalte><footer...>
</table>
</footer...>此时<table></table>fdksjfkd如何能<table>fdksjfkd</table>
header和footer的中间,而是会在footer的后面,我很郁闷,怎么办?比如
<headerT...>
<table>
</headrT...><myTemplate>
fdksjfkd
</myTempalte><footer...>
</table>
</footer...>此时<table></table>fdksjfkd如何能<table>fdksjfkd</table>
解决方案 »
- 校内编程大赛,征集一下老鸟们的经验。
- 在form窗体上,动态添加控件的问题(winform)。
- 动态加载节点的treeview为什么有时会出错?
- 接口问题,完全解决后再加200分
- C#中HTMLDocument接口异常。
- 用什么工具加密 ASP.NET 的代码呢?
- 是在厦门或福州的.net程序员就加进来,聊聊创业,技术之类的问题!QQ群号:12949398
- 请教一个简单的问题,见者请入
- 怎样使用户必须通过登录才可以访问站点?
- 两个很小的问题,但我没能解决!!!!!!
- 在FireFox中 文本框回车产生提交的问题???[
- 求助:使用Listview控件插入的时候,如何解决刷新的同时重复插入的问题?
/// 扩展了个EmptyDataTemplate,没有数据时显示
/// </summary>
public class Repeater : System.Web.UI.WebControls.Repeater
{
/// <summary>
/// 空数据模板
/// </summary>
[PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(TemplateControl))]
public ITemplate EmptyTemplate
{
get;
set;
} protected override void OnDataBinding(System.EventArgs e)
{
base.OnDataBinding(e); if (null != this.EmptyTemplate)
{
if (this.Items.Count < 1)
{
this.EmptyTemplate.InstantiateIn(this);
}
}
}
}
protected override void OnDataBinding(System.EventArgs e)
{
base.OnDataBinding(e); if (null != this.EmptyTemplate)
{
if (this.Items.Count < 1)
{
this.EmptyTemplate.InstantiateIn(this);
}
}
}
看这里 你应该能明白了吧
有点不明白,instantiateIn是用来动态生成了一个模板,但是最终的render来控制怎么显示header,footer等的吧,那告诉我有解决方案吗?有的话,如何做,谢谢
你的代码应该是证实了我的猜测, 因为你重写方法时 先执行了 base.OnDataBinding(e);这样会把全部模板加载
之后,才加载你定义的空模板
{
if (e.Item.ItemType == ListItemType.Footer)
{ if (null != this.MyEmptyTemplate)
{
if (this.Items.Count == 0)
{
this.MyEmptyTemplate.InstantiateIn(this);
}
}
}
base.OnItemCreated(e);
}