我正在查看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] + ", ";
}
}
}
答案 0 :(得分:0)
正如Jammykam指出的那样,请不要使用渲染参数来获取此类信息。这应该存储在数据源上,可以正确存储和语言版本等。
但是,如果你觉得这样做会很难,那么请看看之前的回答Sitecore - Image field in parameter template
请记住,渲染参数实质上是作为url编码字符串提供的简单键值对。这对于传递复杂数据并不理想。
干杯,博