2010-07-12 2 views
0

필드 값을 기반으로 SharePoint 목록에서 단일 값을 선택해야합니다. 필드의 유형은 LinkFieldValue입니다. CAML 쿼리는 어떻게 작성해야합니까?LinkFieldValue를 기준으로 항목을 필터링하는 SPQuery를 작성하려면 어떻게해야합니까?

빈 쿼리로 항목을 선택하면 목록의 모든 항목이 예상대로 나타납니다.

쿼리에 제약 조건을 추가하면 빈 결과가 반환됩니다. 다음과 같이 나는 쿼리를 작성 시도 :

다음 쿼리 텍스트 결과
string.Format("<Where><Eq><FieldRef Name=\"PollInstancePoll\" /><Value " 
+"Type=\"Text\">{0}</Value></Eq></Where>", 
new LinkFieldValue { NavigateUrl = "/az/Lists/Polls/DispForm.aspx?ID=1", 
Text = "example poll" }); 

: 기본적으로

new SPQuery 
{ 
    Query = 
     CAML.Where(
      CAML.And(
       CAML.Contains(
        CAML.FieldRef("PollInstancePoll"), 
        CAML.Value(pollPath)), 
       CAML.Contains(
        CAML.FieldRef("PollInstancePage"), 
        CAML.Value(pagePath)))) 
}; 

I : 나는 다음과 같은 쿼리 내 문제를 해결 한

<Where><Eq><FieldRef Name="PollInstancePoll" /> 
<Value Type="Text"><a href="/az/Lists/Polls/DispForm.aspx?ID=1">example poll</a></Value> 
</Eq></Where> 

답변

1

링크 입력란의 URL 부분 만 확인하고 비교 값을 Type="Text"으로 입력하십시오. SharePoint는 데이터베이스의 값을 항상 서버 상대 URL로 저장한다는 점을 기억해야합니다.

+0

+1 나를 CAML.NET에 소개하려면 –

관련 문제