0
如何覆盖Sitecore <sc:Image>
控件,以便它从同一项目中的另一个字段读取替代文本?覆盖sc:图片替代文本
我希望能够给一个标签,
<sc:Image contextAltText="fieldName" ...>
,它应该先了解一下这个领域,如果是空的,它应该呈现Media Item Alt
文本,因为它一般不会。
我不需要详细的实施说明。我只需要知道我必须覆盖哪些类和函数。
如何覆盖Sitecore <sc:Image>
控件,以便它从同一项目中的另一个字段读取替代文本?覆盖sc:图片替代文本
我希望能够给一个标签,
<sc:Image contextAltText="fieldName" ...>
,它应该先了解一下这个领域,如果是空的,它应该呈现Media Item Alt
文本,因为它一般不会。
我不需要详细的实施说明。我只需要知道我必须覆盖哪些类和函数。
您可以创建自己的类从Sitecore.Web.UI.WebControls.Image
继承和覆盖它是这样的:
也许不是调用parameters.Add
您需要更换原来的alt
值。我没有按照你的要求测试代码,它只应指向你正确的方向。
编辑:下面的代码将不会与ContentAltText
是字段名称,而不是不同的替代文字工作。
也有另一种方式,但我不知道这是否会覆盖默认alt
值或这仅适用于新的属性:
<sc:Image runat="server" Field="Field Name" Parameters="alt=OverridenAltValue" />
编辑2:
要注册您的控件,请在web.config
的下面找到以下部分,并添加您的名称空间和您的自定义前缀:
<system.web>
<pages>
<controls>
<add tagPrefix="sc" namespace="Sitecore.Web.UI.WebControls" assembly="Sitecore.Kernel"/>
<add tagPrefix="msc" namespace="My.Assembly.Namespace" assembly="My.Assembly"/>
...
</controls>
</pages>
</system.web>
您可能需要重新启动Visual Studio以确保它识别新的名称空间。
然后使用:
<msc:ImageWithAlt runat="server" ... />
ContentAltText不是替代文字的价值,但该领域的在ALT文本值是可以找到相同的项目名称。所以我需要到达此项目的另一个字段 – EngelbertCoder
请参阅已编辑的答案。使用Item [ContentAltText]来获取该字段的值。 –
你能否也请告诉我,我应该修改哪些配置来注册这个新的用户控件?例如,如 –
EngelbertCoder