为什么sitecore会按类型整数忽略默认值0?

时间:2014-03-21 10:10:32

标签: c# sitecore sitecore6 sitecore7

我正在使用sitecore。对于一个项目,我创建了一个带有简单类型整数字段的模板。此整数字段的默认值为0.

当我基于此模板创建一个值为0(默认值)的新项目时,它不会显示。通过将默认值更改为1(例如),将显示该值。有谁知道如何解决这个问题?

非常感谢。

的Jordy

3 个答案:

答案 0 :(得分:7)

Sitecore 不会忽略默认值0。价值' 0'存储在 Sitecore 中的Integer字段,此字段不会显示,因为这是int类型的默认值(或者long因为我知道该值被解析为long)。

如果您更改为显示Raw values,则会显示该值。

如果您从代码中访问此字段值,您将获得0

答案 1 :(得分:2)

这真的很奇怪 我也可以使用最新版本的Sitecore 7.2重现它。

我建议您就此问题与Sitecore支持小组联系,因为它可能是个错误。

在此期间,只需使用Number字段而不是Integer 由于某种原因,它可以正确使用该字段类型 唯一的副作用是它也会接受小数值......

您可以通过将此正则表达式添加到字段项的Validation字段来解决此问题:^\d+$

enter image description here

答案 2 :(得分:1)

Sitecore不会忽略值0.它只是没有向用户显示它的全部,但它的值将在数据库中存储为0,如果从代码中访问该字段的值,它将给出0作为结果。如果要检查,可以查看dbbrowser,它将值显示为0.要查看dbbrowser,请转到

<URL Address> / Sitecore的/管理/ login.aspx的

以sitecore \ <user id>

登录

转到该项并检查字段的值