是否有人知道如何使用" Droplist"输入模板字段?
我猜&#34; Droplist&#34;与<select><option></option></select>
类型相同。
我想指定具有静态值的选择列表类型,以便Sitecore编辑者在创建页面时只能选择许多可用列表中的一个。
我的计划是在列表中添加CSS类名(<option>
)(<select>
),编辑将通过选择其中一种来使用其中一种样式。
如何在选择列表中添加值?我必须编写代码吗?
答案 0 :(得分:8)
Droplist
类似于Droplink
字段类型,因为它们都是下拉列表。 Droplist
只会存储项目的名称(因此它不会包含指向该项目的链接),而Droplink
会存储项目的ID。这意味着如果您重命名选项,或将其移动到内容树中的其他位置,Droplist
将不会更新(导致链接可能断开),Droplink将更新。
您可以通过将模板中的Droplist
字段设置为某些内容来为Datasource
添加值(例如/sitecore/content/Home/CSS/
,如果您希望存储CSS类名称的话)。
您可以在代码中访问Droplist
,如下所示:
Item item = Sitecore.Context.Item;
string css = item["FieldName"]; // Also possible is item.Fields["Fieldname"].Value;
可以像这样访问Droplink
:
string dropDownItemId = item["Fieldname"]; // Or, again, item.Fields["Fieldname"].Value; if you prefer
var cssItem = Sitecore.Context.Database.GetItem(dropDownItemId); // And now you can
// access any fields in this item.
修改强> A good article going into some more detail in the differences between Droplink and Droplist
答案 1 :(得分:3)
我会像@Trayek在他的解决方案中建议的那样继续进行。要扩展它,这应该是您的实现:
您可以创建自己的模板,可能称为 CSS Class ,然后您将向其添加单行文本字段,可能称为 Value 。在创建项目时,您将在该字段中放置实际的CSS类。
接下来,您将在内容树中的某处添加文件夹项,然后将 CSS Class 项添加到该文件夹。该文件夹也将是您的droplist / droplink的数据源。
要设置数据源,this blog post应该有所帮助。您将在没有搜索的字段下使用 number 1 (下面包含屏幕截图)。我前一段时间写了这篇文章,所以如果你需要任何额外的帮助,请告诉我。