Beispiel #1
0
 /// <summary>
 /// 初始化当前页面模板数据
 /// </summary>
 protected override void InitPageTemplate()
 {
     //注册一个自定义函数
     this.Document.SetValue("Page", this);
     this.Document.RegisterGlobalFunction(this.GetNewsUrl);
     this.Document.SetValue("newsdata", NewsDbProvider.GetNewsData("relating"));
 }
        /// <summary>
        /// 用于给模板调用的方法
        /// </summary>
        /// <returns></returns>
        public List <News> GetNewsData()
        {
            //获取当前正在呈现数据的标签,也就是正在调用此函数的标签
            Tag    tag  = this.Document.CurrentRenderingTag;
            string type = "relating"; //默认的

            if (tag != null)
            {
                //标签不为null.也就是此函数是通过标签调用的
                type = tag.Attributes.GetValue("dbtype");
            }
            return(NewsDbProvider.GetNewsData(type));
        }
        /// <summary>
        /// 用于给模板调用的方法(静态方法)
        /// </summary>
        /// <returns></returns>
        public static List <News> GetStaticNewsData()
        {
            //获取正在呈现数据的文档
            TemplateDocument document = TemplateDocument.CurrentRenderingDocument;
            string           type     = "relating"; //默认的

            if (document != null)
            {
                if (document.CurrentRenderingTag != null)
                {
                    //正在呈现的标签不为null.也就是此函数是通过标签调用的
                    type = document.CurrentRenderingTag.Attributes.GetValue("dbtype");
                }
            }
            return(NewsDbProvider.GetNewsData(type));
        }
Beispiel #4
0
        /// <summary>
        /// 初始化当前页面模板数据
        /// </summary>
        protected override void InitPageTemplate()
        {
            //获取所有名称为topnews的模板块
            ElementCollection <Template> templates = this.Document.GetChildTemplatesByName("topnews");

            foreach (Template template in templates)
            {
                //根据模板块里定义的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 += new System.ComponentModel.CancelEventHandler(Tag_BeforeRender);
                }
            }
        }
Beispiel #5
0
 /// <summary>
 /// 获取热门的新闻数据
 /// </summary>
 /// <returns></returns>
 public static List <News> GetHotingNews()
 {
     throw new Exception("ddd");
     return(NewsDbProvider.GetNewsData("hoting"));
 }
Beispiel #6
0
 /// <summary>
 /// 获取热门的新闻数据
 /// </summary>
 /// <returns></returns>
 public static List <News> GetHotingNews()
 {
     return(NewsDbProvider.GetNewsData("hoting"));
 }