Sitecore参数模板 - 无法访问图像字段

时间:2016-01-13 14:55:12

标签: .net sitecore sitecore7

我正在查看sitecore中的参数模板,以获取我在页面上的渲染项目。

我希望编辑器能够多次向页面添加渲染,但是他们可以为每个渲染定义不同的属性,以便创建可重用的项目。

我为:

定义了字段 标题 - 文本字段 颜色 - 文本字段 图标 - 文本字段 图像 - 图像场 固定 - 复选框

使用下面显示的代码,我可以检索文本字段元素,但没有为图像类型返回任何内容;我的意图是将图标作为预设项目的下拉列表,我觉得这个问题可能也适用于...

感谢您的帮助

public partial class jonstest : System.Web.UI.UserControl
{
    private NameValueCollection parameters;
    public virtual NameValueCollection Parameters
    {
        get
        {
            if (this.parameters == null)
            {
                var parameters = this.Attributes["sc_parameters"];
                this.parameters = string.IsNullOrEmpty(parameters)
                                      ? new NameValueCollection()
                                      : Sitecore.Web.WebUtil.ParseUrlParameters(parameters);
            }
            return this.parameters;
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        string rawParameters = Attributes["sc_parameters"];
        var parameters = Sitecore.Web.WebUtil.ParseUrlParameters(rawParameters);
        var title = parameters["Title"];
        var colour = "tile-" + parameters["Colour"];
        var icon = "fa-" + parameters["Icon"];
        //var image = parameters["Image"];

        var image = this.Rendering.Parameters["Image"];



        TitleText.Text = title;
        ColourValue.Attributes["class"] += " " + colour.ToLower();
        IconValue.Attributes["class"] += " " + icon.ToLower();

        foreach (string key in this.Parameters.Keys)
        {
            Image.Text += "Key=" + key + ";Value=" + this.Parameters[key] + ", ";
        }
    }
}

1 个答案:

答案 0 :(得分:0)

正如Jammykam指出的那样,请不要使用渲染参数来获取此类信息。这应该存储在数据源上,可以正确存储和语言版本等。

但是,如果你觉得这样做会很难,那么请看看之前的回答Sitecore - Image field in parameter template

请记住,渲染参数实质上是作为url编码字符串提供的简单键值对。这对于传递复杂数据并不理想。

干杯,博