0
이벤트 처리기를 프로그래밍하기 시작했습니다. 처음에는 하드 코딩 된 값이있는 목록에 일부 항목을 추가했습니다. 모든 것이 잘 작동했지만 properties.OpenWeb()을 사용하여 URL을 얻으려고 시도했는데 web.Url.ToString()
- 처리기가 작동하지 않고 오류가 발생하지 않았습니다.Sharepoint - 추가 된 이벤트 처리기 속성이 작동하지 않습니다.
구성을 변경해야합니까? 내 문제를 해결할 방법이 있습니까?
그런데 값을 가져 오려고하면 모두 null입니다.
WSS 3.0 및 VS 2008을 사용하고 있습니다. 아래 코드를 참조하십시오. 감사합니다.
public override void ItemAdded(SPItemEventProperties properties)
{
SPSite site = new SPSite("http://air_sim:1431/");
SPWeb web = site.RootWeb;
SPList List = web.Lists["Announcements"];
base.ItemAdded(properties);
SPWeb web1 = properties.OpenWeb();
SPListItem newitem = List.Items.Add();
newitem["Title"] = "test";
newitem["Body"] = web1.Url.ToString();
newitem.Update();
}
나는이 코드를 msdn에서 발견했습니다. 작동하지 않습니다. 아무런 오류도없고, 조건도 사실입니다.
public override void ItemAdding(SPItemEventProperties properties)
{
using(SPWeb oWebsite = new SPSite(properties.SiteId).OpenWeb(properties.RelativeWebUrl))
{
SPListItemCollection collItems = oWebsite.Lists[properties.ListTitle].Items;
if (collItems.Count >1)
{
properties.Cancel = true;
properties.ErrorMessage = "Adding items to this list is not supported because it already contains " +
collItems.Count.ToString() + " items.";
}
}
}
오류가 없음을 어떻게 알 수 있습니까? 로그를 보셨습니까? ItemAdded 핸들러는 실패 할 경우 브라우저에 오류 메시지를 생성하지 않습니다. –
추가 이벤트 처리기에서 값을 업데이트하지 말고 추가를 사용하여 원래 코드를 게시하십시오. ... –
처음에 힌트를 주셨습니다. 로그 파일은 어디서 구할 수 있습니까? Common Files/Microsoft Shared/web server extensions/12를 살펴 보았지만 튜토리얼에 설명 된 로그 파일은 없습니다. – Fabian