셰어 포인트 캘린더보기 필터링에 재미있는 문제가 있습니다. 그 코드가 잘 작동 :caml 쿼리로 셰어 포인트 캘린더보기 필터링
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite siteCollection = new SPSite(SPContext.Current.Web.Site.ID))
{
using (SPWeb site = siteCollection.OpenWeb())
{
site.AllowUnsafeUpdates = true;
SPView view = site.Lists["My Calendar"].Views["Calendar"];
view.Query = @"<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>ololo</Value></Eq></Where>";
view.Update();
site.AllowUnsafeUpdates = false;
}
}
});
을하지만
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite siteCollection = new SPSite(SPContext.Current.Web.Site.ID))
{
using (SPWeb site = siteCollection.OpenWeb())
{
site.AllowUnsafeUpdates = true;
SPView view = site.Lists["My Calendar"].Views["Calendar"];
view.Query = @"<Where><Or><Eq><FieldRef Name='Title'/><Value Type='Text'>ololo</Value></Eq><Eq><FieldRef Name='Title'/><Value Type='Text'>trololo</Value></Eq></Or></Where>";
view.Update();
site.AllowUnsafeUpdates = false;
}
}
});
에 쿼리를 변경할 때 나는 예외를 얻을 :
입력 문자열이 올바른 형식이 아니 었합니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.
예외 정보 : System.FormatException : 입력 문자열의 형식이 올바르지 않습니다.
소스 오류 :
처리되지 않은 예외가 현재 웹 요청을 실행하는 동안 생성되었습니다. 예외의 출처와 위치에 관한 정보는 아래의 예외 스택 추적을 사용하여 식별 할 수 있습니다.
스택 추적 :
[FormatException을 :. 입력 문자열이 올바른 형식이 아니었다] System.Number.StringToNumber (문자열 str을, NumberStyles 옵션 NumberBuffer & 번호,하는 NumberFormatInfo 정보, 부울 parseDecimal) 10161091 System.Number.ParseInt32 (String를, NumberStyles 스타일,하는 NumberFormatInfo 정보) 207 System.Convert.ToInt32 (문자열 값, IFormatProvider를 공급자) +55 Microsoft.SharePoint.Utilities.SPUtility.CreateSystemDateTimeFromXmlDataDateTimeFormat (문자열 strDT, 부울 fPreserveMilliseconds) + 174 Microsoft.SharePoint.ApplicationPages.Calendar.SafeFieldAccesso r.GetDateTimeFieldValue (SPItem 항목, 문자열의 fieldName) 227 Microsoft.SharePoint.ApplicationPages.Calendar.CalendarItemRetriever.b_ 0 (SPItem 항목) +24 System.Linq.WhereListIterator 1.MoveNext() +288 System.Linq.<ExceptIterator>d__92
1.MoveNext() 322 을 System.Linq .Buffer 1..ctor(IEnumerable
1 소스) 548 System.Linq.d _0.MoveNext() 164 Microsoft.SharePoint.ApplicationPages.Calendar.CalendarItemRetriever.ConvertItemType (IEnumerable을 1 items) +578 Microsoft.SharePoint.ApplicationPages.Calendar.DefaultCalendarListAccessor.Retrieve(String selectedDate, String scope, Dictionary
entityInfo 2) +18 Microsoft.SharePoint.ApplicationPages.Calendar .CalendarService.CreateStartupResponse (ICalendarAccessor 접근 자, Dictionary2 매개 변수, String viewType, String selectedDate) +249 Microsoft.SharePoint.ApplicationPages.WebControls.AjaxCalendarView.Cre ateStartupData (문자열 viewType, 문자열되어 selectedDate) 462 Microsoft.SharePoint.ApplicationPages.WebControls.AjaxCalendarView.CreateBodyOnLoadScript (SPWeb 웹) 306 Microsoft.SharePoint.ApplicationPages.WebControls.AjaxCalendarView.OnPreRender (EventArgs입니다 전자) 425 System.Web .UI.Control.PreRenderRecursiveInternal() 108 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI.Control.PreRenderRecursiveInternal() 224 System.Web.UI .Control.PreRe nderRecursiveInternal() +224 System.Web.UI.Control.PreRenderRecursiveInternal() +224 System.Web.UI.Page.ProcessRequestMain (부울 includeStagesBeforeAsyncPoint, 부울 includeStagesAfterAsyncPoint) +3394
아무도 그 문제를 해결하는 방법을 알고 있습니까?
비트 OT이지만 RunWithElevatedPermissions를 왜 사용하고 있습니까? 보안 트리밍을 의도적으로 우회하지 않는 한, 그리고이 질문에 실제로 관련이 없더라도 코드 스 니펫을 혼란스럽게하는 것은 아닙니다. – Ryan