2012-01-20 33 views
2

我想访问(然后修改)性质象场(S)Sitecore的(尤其感兴趣“尺寸“和”保持率“复选框)通过代码隐藏文件(blah.ascx.cs)。 [这是为了确保所有图像在子图层中显示时都具有一致的大小(不考虑原始大小)]访问Sitecore的属性图像字段在用户控件的代码隐藏

我知道这些属性可以手动添加,但对于内容作者“忘记”为图像添加尺寸,我不希望我的sublayouts搞砸了。因此,我需要检查一下。

有没有办法通过代码访问并修改这些属性?

这里是一个图像,显示我想要访问,并通过代码修改正是:

enter image description here

+0

您是否使用了'FieldRenderer'或常规'的'? –

+0

我正在使用一个普通的 YashG99

回答

5

如果您使用的是<asp:Image ... />,并通过C#绑定ImageUrl,您可以访问在C#中ImageField和获取属性,像这样渲染器或常规<sc:FieldRenderer ... />我建议您使用<sc:FieldRenderer ... />,因为图像参数只适用于此,as documented here

下面是一个示例代码段:

<sc:FieldRenderer FieldName="My Image Field" Parameters="w=100&h=200&as=1" runat="server" /> 
+0

完美!我现在可以获取或设置属性。谢谢! 另一件事,但我可以得到或设置复选框**“保持长宽比”**? – YashG99

+1

“Sitecore.Data.Fields.ImageField”类没有该比率的属性。 'FieldRenderer'控件确实采用'as = 1'参数,如我的示例所示,以保持纵横比。为了保持与'ImageField'的比例,你可以简单的划分数学到宽度和高度来保持比例。 –

+0

哦,是啊!当我问你那个(愚蠢的)问题时,我所有的脑细胞都去了哪里?不管怎么说,多谢拉!我会马上做数学! :) – YashG99

1

是为了确保所有的图像具有一致的尺寸,在sublayouts显示时(不论原始大小的

我建议使用FieldRenderer类或< SC:图像>用于在子图层中渲染这些字段,然后指定“mh”(最大高度)和“mw”(最大宽度)参数,以便它们始终适合布局。

你可以阅读更多有关参数在这里 - http://sdn.sitecore.net/Articles/XSL/5%203%20Enhancements/Image%20Enhancements.aspx

1

不是100%确定(不能点击这里),但如果检索字段作为ImageField的,你应该能够访问这些值。如果您使用的是<sc:Image ... />

Sitecore.Data.Fields.ImageField field = item.Fields["My Image Field"]; 
// you can now access: 
// field.Width 
// field.Height etc... 

var cur = Sitecore.Context.Item; 
Sitecore.Data.Fields.ImageField imgfield = cur.Fields["imagefieldname"] as Sitecore.Data.Fields.ImageField; 
//imgfield.<properties> 
相关问题