Validation 如何声明性地部署带有验证的本地化datetime字段?

Validation 如何声明性地部署带有验证的本地化datetime字段?,validation,datetime,sharepoint,localization,Validation,Datetime,Sharepoint,Localization,下面的列定义不起作用 =[限制到(如有必要)]今天() 但我当然不想在验证公式中使用显示名称。 移动到更接近生产的位置时,任何显示名称都将移动到resx文件中。 在使用resx文件时,我遇到了与以前尝试使用内部字段名而不是显示名时相同的错误 错误为:公式无法引用其他列。检查公式是否存在拼写错误,或更新公式以仅引用此列。 这是SharePoint在通过UI创建列时所做的: <Field Type="DateTime" DisplayName="RS Expiration Date" R

下面的列定义不起作用


=[限制到(如有必要)]今天()

但我当然不想在验证公式中使用显示名称。 移动到更接近生产的位置时,任何显示名称都将移动到resx文件中。 在使用resx文件时,我遇到了与以前尝试使用内部字段名而不是显示名时相同的错误

错误为:公式无法引用其他列。检查公式是否存在拼写错误,或更新公式以仅引用此列。

这是SharePoint在通过UI创建列时所做的:

<Field Type="DateTime" DisplayName="RS Expiration Date" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="DateOnly" FriendlyDisplayFormat="Disabled" ID="{15380d60-50d7-4ce1-b21b-92695f0c0811}" SourceID="{8086fd7d-ca0b-4258-9352-f166615b6159}" StaticName="RSExpDate" Name="RSExpDate" ColName="datetime2" RowOrdinal="0" CalType="0" Version="1">
<Validation Message="Please enter a future date." Script="function(x){return SP.Exp.Calc.valid(SP.Exp.Node.f('GT',[SP.Exp.Node.a(0),SP.Exp.Node.f('TODAY',[])]),x)}">=RSExpDate&gt;TODAY()</Validation>
<ValidationDisplayNames>=[RS Expiration Date]&gt;TODAY()</ValidationDisplayNames>

=RSExpDateTODAY()
=[RS到期日]今天()

很明显,里面有很多你不需要的信息。 有趣的部分是验证部分。它使用“ValidationDisplayNames”而不是“Validation”。尽管如此,后者也只适用于显示名称

<Field Type="DateTime" DisplayName="RS Expiration Date" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="DateOnly" FriendlyDisplayFormat="Disabled" ID="{15380d60-50d7-4ce1-b21b-92695f0c0811}" SourceID="{8086fd7d-ca0b-4258-9352-f166615b6159}" StaticName="RSExpDate" Name="RSExpDate" ColName="datetime2" RowOrdinal="0" CalType="0" Version="1">
<Validation Message="Please enter a future date." Script="function(x){return SP.Exp.Calc.valid(SP.Exp.Node.f('GT',[SP.Exp.Node.a(0),SP.Exp.Node.f('TODAY',[])]),x)}">=RSExpDate&gt;TODAY()</Validation>
<ValidationDisplayNames>=[RS Expiration Date]&gt;TODAY()</ValidationDisplayNames>