且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

当页面上有多个相同类型的子布局时,获取呈现参数

更新时间:2022-03-07 17:10:01

不确定我是否遗漏了什么。但是您可以直接在子布局上获取子布局渲染参数。我在用于所有Sitecore子布局的基本子布局上使用以下内容-在多次插入的同一个子布局上呈现参数没有任何问题:)

    protected Sitecore.Web.UI.WebControls.Sublayout CurrentSublayout
    {
        get
        {
            Control c = Parent;
            while (c != null && !(c is Sitecore.Web.UI.WebControls.Sublayout))
            {
                c = c.Parent;
                if (c == null)
                    break;
            }

            return c as Sitecore.Web.UI.WebControls.Sublayout;
        }
    }

    protected NameValueCollection CurrentParameters
    {
        get
        {
            if (CurrentSublayout == null)
                return null;

            NameValueCollection parms = WebUtil.ParseUrlParameters(CurrentSublayout.Parameters);

            var sanitizedValues = new NameValueCollection();
            for (int i = 0; i < parms.Count; i++)
            {
                if (!string.IsNullOrEmpty(parms[i]))
                    sanitizedValues.Add(parms.Keys[i], parms[i]);
            }

            return sanitizedValues;
        }
    }