2015-12-04 25 views
0

我有一个使用子布局sub1的某个项目。用这个子布局创建的项目有一个字段“切换列”,我想删除或隐藏(如果可能,隐藏/删除“分栏”部分)。请注意,我不希望模板的每个项目都隐藏该字段;只是使用sub1的项目(因为模板正在被不同的子布局使用)。Sitecore 8:隐藏项目中的一个部分或一个字段

enter image description here

有没有办法通过代码在sublayout的ASCX文件来做到这一点?

回答

3

您可以通过使用额外的图层继承来解决。

创建2组模板字段: 模板字段最小集合 带添加字段的模板字段。

sub1从模板字段的继承最小集合 其他布局使用带有从最小集合和添加字段继承的模板。

也许这也是可用的: 用于在内容编辑器中隐藏。 您可以在模板字段或部分项目上拒绝“字段读取”角色/用户。

https://community.sitecore.net/developers/f/8/t/2113

+0

我如何通过代码隐藏否认“字段读取”? –

+0

我想我不明白这个问题。回答改变我认为你可以使用继承来解决你的问题。 –

+0

通过inheritence你的意思是模板的继承?这将意味着创建另一个模板,从基地继承并更改新的模板?正如我前面所说,我不想对模板进行任何更改,因为这会改变很多现有项目。 –

-1

也许对内容编辑自定义管道?如果您点击<renderContentEditor>管道,您可能会检查该项目的演示文稿,嗅探该子图层并注入一些JavaScript以隐藏该面板。

0

不,这是不可能的。在内容编辑器中查看项目时,您的子布局未加载。我会建议你重新考虑你的架构。这种字段应该可能是一个渲染参数。或者,您可以创建一个单独的模板以充当这些子布局的数据源。

+0

这是[已经建议](OPT)(http://stackoverflow.com/questions/34060128/sitecore-8-get-sublayout-item-when-ascx-file-is-shared)。 – jammykam

1

您可以隐藏与在getContentEditorFields定制处理器的内容编辑器领域,看到这个帖子:

http://ctor.io/hide-fields-in-the-sitecore-content-editor/

但在其他答案的建议,我会overthink你的方法。就我个人而言,我会使用两个单独的Sublayouts(具有不同数量的列,您可以稍后轻松交换它们,而不会丢失它的数据源),或者将其用作渲染参数。

+0

我已经使用了不同的布局......因为我认为使用渲染参数方法对现有项目没有影响...... –

相关问题