在SharePoint 2010中,增强了列表的验证机制,我们可以定义自己的验证公式,根据其他列的值或一定的验证条件来验证某一列,非常简单实用,通过一个例子一起来看一下。
首先创建一个Custom List自定义列表,叫TestValidation,如图:
有两种方式来添加验证,一种是在为列表创建列时为该列添加验证公式,另一种是在列表设置中为已有列添加验证公式,首先来看第一种,我们来创建一个Age列,列类型选择的是Number,如图:
在该页的下方,可以看到Column Validation:
在Formula中,创建公式,比如,我要为这个Age列创建的验证条件是:要大于18岁,小于60岁,公式为:=AND(Age>=18,Age<=60),注意前边的等号,然后在User message中输入提示信息:The age of a worker must be between 18 and 60,这样当输入的年龄不在18和60之间,会提示这个信息,点击OK保存。
来测试一下我们的公式,在“Add New Item”添加新项中,如果我输入的年龄不在18和60之间,在保存时会提示,如图:
Now, you see, the formula is working.
另外一种方式,通过在列表设置中为现有列添加验证公式,与第一种基本类似,如图:列表设置—验证设置:
在这可以设置与其他列关联的验证公式,如图:
严格来说,还有一种添加验证公式的方式,通过代码,也非常简单:
2 {
3 using (SPWeb spWeb = spSite.RootWeb)
4 {
5 SPList testValidation= spWeb.Lists.TryGetList("TestValidation");
6
7 if (testValidation!= null)
8 {
9 SPFieldNumber age =
10 lstScores.Fields.GetField("Age") as SPFieldNumber;
11 age.ValidationFormula =
12 “=AND(Age>=18,Age<=60)";
13 age.ValidationMessage =
14 " The age of a worker must be between 18 and 60";
15 age.Update();
16 }
17 }
18 }