示例#1
0
        /// <summary>
        /// 根据前缀获取变量的模板所有者
        /// </summary>
        /// <param name="template"></param>
        /// <param name="prefix"></param>
        /// <returns>如果prefix值为null则返回template的根模板.如果为空值.则为template.如果为#则返回template的父模板.否则返回对应Id的模板</returns>
        internal static Template GetOwnerTemplateByPrefix(Template template, string prefix)
        {
            if (prefix == string.Empty)
            {
                return(template);                                      //前缀为空.则返回当前模板
            }
            if (prefix == "#")
            {
                return(template.OwnerTemplate ?? template);                 //前缀为#.则返回父模板(如果父模板不存在则返回当前模板)
            }
            //取得根模板
            while (template.OwnerTemplate != null)
            {
                template = template.OwnerTemplate;
            }

            //如果没有前缀.则返回根模板.否则返回对应Id的模板
            return(prefix == null ? template : template.GetChildTemplateById(prefix));
        }
示例#2
0
        /// <summary>
        /// 根据前缀获取变量的模板所有者
        /// </summary>
        /// <param name="template"></param>
        /// <param name="prefix"></param>
        /// <returns>如果prefix值为null则返回template的根模板.如果为空值.则为template.如果为#则返回template的父模板.否则返回对应Id的模板</returns>
        internal static Template GetOwnerTemplateByPrefix(Template template, string prefix)
        {
            if (prefix == string.Empty) return template;               //前缀为空.则返回当前模板
            if (prefix == "#") return template.OwnerTemplate ?? template;   //前缀为#.则返回父模板(如果父模板不存在则返回当前模板)

            //取得根模板
            while (template.OwnerTemplate != null) template = template.OwnerTemplate;

            //如果没有前缀.则返回根模板.否则返回对应Id的模板
            return prefix == null ? template : template.GetChildTemplateById(prefix);
        }