本文介绍了Sitecore 8:共享.ascx文件时获取子布局项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个子布局:Grid-1-2和Grid-2-1。

这两个子布局共享单个AScX文件(这不是一个很好的Sitecore实践,但我以这种方式需要它)。

问题是在AScX代码后面,我想看看当前选择的网格是Grid-1-2还是Grid-2-1?!

我已尝试使用数据源RenderingId技术,但没有效果。

编辑

我想知道是否可以从子布局的"data"部分获得"Parameters"字段。这样就行了。

欢迎所有建议。请帮帮忙!!

推荐答案

我们在基类上有以下方法,我们的所有子布局控件都继承自.您可以只在每个子布局上传递一个参数来标识它,并使用GetParameter方法检索它。例如name="Grid-1-2"等

    public string GetParameter(string key, string defaultValue = null)
    {
        Sublayout s = this.SitecoreSublayout;
        if (s != null)
        {
            if (!String.IsNullOrWhiteSpace(s.Parameters))
            {
                NameValueCollection pars = HttpUtility.ParseQueryString(s.Parameters);
                if (pars != null)
                {
                    return pars[key];
                }
            }
        }
        return defaultValue;
    }

    protected Sublayout SitecoreSublayout
    {
        get
        {
            Sublayout parent = this.Parent as Sublayout;
            return parent;
        }
    }

这篇关于Sitecore 8:共享.ascx文件时获取子布局项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-28 20:50