如何在Sitecore模板字段中使用Droplist类型

时间:2015-01-20 21:26:15

标签: sitecore

是否有人知道如何使用" Droplist"输入模板字段?

我猜&#34; Droplist&#34;与<select><option></option></select>类型相同。

我想指定具有静态值的选择列表类型,以便Sitecore编辑者在创建页面时只能选择许多可用列表中的一个。 我的计划是在列表中添加CSS类名(<option>)(<select>),编辑将通过选择其中一种来使用其中一种样式。

如何在选择列表中添加值?我必须编写代码吗?

2 个答案:

答案 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 (下面包含屏幕截图)。我前一段时间写了这篇文章,所以如果你需要任何额外的帮助,请告诉我。

enter image description here