2014-04-24 2 views
3
public override void ItemAdding(SPItemEventProperties properties) 
     { 
      base.ItemAdding(properties); 
      SPItem itemBeingAdded = properties.ListItem; 
      var startTime = itemBeingAdded["Start Time"]; 
      // Some code goes here. 
     } 

캘린더 목록에 항목을 추가하는 동안이 이벤트가 발생합니다. 그것은 해고되고있다. 문제 없어. 그러나 properties에서 어떤 값도 얻지 못하고 있습니다. 위 코드에서 startTime은 나에게 아무것도주지 않습니다. 사실, 항목의 열 필드 (내 경우에는 properties)에 액세스하려고합니다. 항목 이벤트 수신기 공유 지점 2010에 추가

enter image description here

사용자가 버튼 다른 이름으로 저장을 클릭합니다

는 어떻게합니다 ( ItemAdding(SPItemEventProperties properties) method 내부) 뒤에 코드에서 열 값을 얻을 수 있습니다. 다른 값과 비교하려면 Start TimeEnd Time이 필요합니다. 문제는 ItemAdding 방법에 있습니다. ItemUpdating이 정상적으로 작동합니다.

public override void ItemUpdating(SPItemEventProperties properties) 
     { 

      base.ItemUpdating(properties); 
      SPItem itemBeingAdded = properties.ListItem; 
      var startTime = itemBeingAdded["Start Time"]; 
     } 
+0

당신은'SPItemEventProperties'의 내용을 검사 했습니까? ''시작 시간 ''키가있는 항목이 있습니까? 필드의 내부 이름은 양식에 표시된 것과 다를 수 있습니다. –

+0

답변 해 주셔서 감사합니다. 나는 내부 이름으로 시도 할 것이다. –

+0

결과는 이전과 같습니다. 내부 이름이 작동하지 않습니다. –

답변

2

마지막으로, 내 대답은 here입니다. 방법은 다음과 같이 될 것입니다

string message = properties.AfterProperties["Description"].ToString(); 

또 다른 것은 내부 이름을 사용해야합니다. 제 경우에는 표시 이름이 작동하지 않았습니다.

관련 문제