2012-01-20 36 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> 
相關問題