我有一个使用子布局sub1的项目。使用此子布局创建的项目有一个字段“切换列”,我想删除或隐藏它(或者如果可能,隐藏/删除“列网格”部分)。请注意,我不希望该模板的每个项目都隐藏该字段;只是使用sub1的项目(因为模板被不同的子布局使用)。
有没有办法通过子布局的 ascx 文件中的代码来做到这一点?
我有一个使用子布局sub1的项目。使用此子布局创建的项目有一个字段“切换列”,我想删除或隐藏它(或者如果可能,隐藏/删除“列网格”部分)。请注意,我不希望该模板的每个项目都隐藏该字段;只是使用sub1的项目(因为模板被不同的子布局使用)。
有没有办法通过子布局的 ascx 文件中的代码来做到这一点?
您可以通过使用额外的层继承来解决。
创建 2 组模板字段: 模板字段最小集 带有附加字段的模板字段。
sub1 从模板字段最小集继承其他布局使用具有最小集和附加字段的继承的模板。
也许这也有用:在内容编辑器中隐藏。您可以在模板字段或部分项目上拒绝角色/用户的“字段读取”。
您可以使用 中的自定义处理器隐藏内容编辑器中的字段getContentEditorFields
,请参阅这篇文章:
http://ctor.io/hide-fields-in-the-sitecore-content-editor/
但正如其他答案所暗示的那样,我会过度考虑你的方法。就个人而言,我会使用两个单独的子布局(具有不同数量的列,您可以在以后轻松交换它们而不会丢失它的数据源)或将其用作渲染参数。
不,那是不可能的。在内容编辑器中查看项目时,不会加载您的子布局。我建议你重新考虑你的架构。这种字段可能应该是一个渲染参数。或者,您可以创建一个单独的模板作为这些子布局的数据源。
也许是内容编辑器的自定义管道?如果您点击<renderContentEditor>
管道,您可能能够检查项目的呈现,嗅出子布局,并注入一些 JavaScript 来隐藏面板。