本文整理汇总了C#中VTemplate.Engine.Template.GetChildTagById方法的典型用法代码示例。如果您正苦于以下问题:C# Template.GetChildTagById方法的具体用法?C# Template.GetChildTagById怎么用?C# Template.GetChildTagById使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VTemplate.Engine.Template
的用法示例。
在下文中一共展示了Template.GetChildTagById方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PreRender
/// <summary>
/// 解析某个模板块的数据
/// </summary>
/// <param name="template"></param>
public void PreRender(Template template)
{
//根据模板块里定义的type属性条件取得新闻数据
List<News> newsData = NewsDbProvider.GetNewsData(template.Attributes.GetValue("type"));
//设置变量newsdata的值
template.Variables.SetValue("newsdata", newsData);
//取得模板块下Id为newslist的标签(也即是在cnblogs_newsdata.html文件中定义的foreach标签)
Tag tag = template.GetChildTagById("newslist");
if (tag is ForEachTag)
{
//如果标签为foreach标签则设置其BeforeRender事件用于设置变量表达式{$:#.news.url}的值
tag.BeforeRender += (sender, e) =>
{
ForEachTag t = (ForEachTag)sender;
//取得当前项的值(因为foreach标签的数据源是List<News>集合,所以当前项的值类型为News实体)
News news = (News)t.Item.Value;
//设置当前项的变量表达式的值.也即是"{$:#.news.url}"变量表达式
t.Item.SetExpValue("url", NewsDbProvider.GetNewsUrl(news));
//当新闻不可见时.你可以取消本次输出
if (!news.Visible) e.Cancel = true;
};
}
}