Sharepoint多列验证

时间:2012-06-11 05:44:35

标签: c# validation list sharepoint sharepoint-2010

我有一个包含多列的自定义列表。验证由自定义内容类型进行。现在我希望两列的组合是唯一的。直到知道我没有找到解决这个问题的方法,所以我的想法是使用eventreceiver或customcontenttype。

我尝试了什么:

ListEventReceiver

public override void ItemAdding(SPItemEventProperties properties)
       {

           if (properties.AfterProperties["a1"].ToString() == properties.AfterProperties["a2"].ToString())
           {
               properties.Status = SPEventReceiverStatus.CancelWithError;
               properties.Cancel = true;
               properties.ErrorMessage = "Failure";
           }
           base.ItemAdding(properties);
       }

它工作正常,但错误消息未显示为验证错误。这是一个新的错误。 enter image description here

CustomContenttype

如果我尝试在自定义内容类型中进行验证,则无法从contenttype访问其他字段的值。所以我无法比较两个字段或检查它们是否是唯一的。

1 个答案:

答案 0 :(得分:0)

如果您想使用ItemEventReceiver进行验证,则应使用Sharepoint Error message page

它会让你更好地使用Errormessage.I已经使用过它。

喜欢:

  if (properties.AfterProperties["a1"].ToString() == properties.AfterProperties["a2"].ToString())
       {
           properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
           properties.RedirectUrl = properties.WebUrl + "/_layouts/error.aspx?ErrorText=Entry is Failure";
       }

或另一种方式是使用PreSaveAction和javascript能够对列表表单进行验证。