2012-06-11 6 views
1

멀티 콜럼을 포함하는 사용자 지정 목록이 있습니다. 유효성 검사는 사용자 지정 콘텐츠 형식에 의해 수행됩니다. 이제 두 개의 열을 조합하여 고유해야합니다. 내가 온보드 함수로이 문제를 해결할 방법을 찾지 못했을 때까지는 내 생각으로는 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을. 따라서 두 필드를 비교하거나 고유하다는 것을 확인할 수는 없습니다.

답변

0

을 사용하여 유효성을 검사하려는 경우 Sharepoint Error message page을 사용해야합니다.

당신의 Errormessage를 잘 활용하십시오. 나는 그것을 사용했습니다.

처럼 :

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

또는 다른 방법은 목록의 형태에 valiation을 할 수 JavaScript를 사용 PreSaveAction입니다.

+0

이 오류는 양식 내의 모든 내용을 삭제하고 사용자가 데이터를 다시 입력해야하기 때문에 ValidationErrors를 찾고 있습니다. – HW90