我可以将自定义列表列的默认值设置为新Guid吗?

时间:2010-04-16 10:08:44

标签: sharepoint default-value

我尝试将字段的defaultvalue属性设置为Guid.NewGuid()但是每个创建的项目都具有相同的guid,所以我猜Guid.NewGuid()被存储为默认值,而不是每次都运行。

实现此目的的唯一方法是将事件处理程序添加到OnAdded的列表中吗?

2 个答案:

答案 0 :(得分:2)

我假设您正在使用单行文本字段。此类字段的标准默认值始终为常量,您无法通过对象模型分配变量或函数。所有这一切都是分配函数特定调用的静态结果。

虽然文本字段可以支持计算的默认值,但它使用与计算列相同的函数,这些函数不支持随机数。

您最好的选择是使用事件处理程序,我也建议使用ItemAdding而不是ItemAdded。当然,您将分配到properties.AfterProperties["fieldname"]而不是field.DefaultValue

答案 1 :(得分:1)

如果您通过代码创建字段并设置field.DefaultValue = Guid.NewGuid(),这将运行Guid.NewGuid()并将返回的Guid存储为默认值 这是运行以下代码的例子:

Guid newGuid = Guid.NewGuid();
string newGuidString = newGuid.ToString();
field.DefaultValue = newGuidString;

我不知道除了使用事件处理程序之外,您可以使用任何方法设置字段以在项目创建时生成新的Guid。

应该可以使用field来生成一个随机数.DefaultValue =“RANDBETWEEN(10,20)”;但我没有测试过这个