2014-09-10 3 views
2

문서화 된 솔루션을 찾지 못했지만 실수로 해결책을 직접 찾은 문제가 발생했습니다. 그래서 나는 같은 문제를 겪을지도 모르는 다른 사람들을 위해 이것을 여기에 문서화하고 싶었다.필드 값을 "undefined"로 반환하는 SPServices GetListItems

SPServices 내에서 CAML 쿼리를 사용하여 목록 항목을 검색 한 다음 평소대로 "ows_ {fieldname}"을 참조하여 각 목록 항목의 필드 값을 검색했습니다. 필드 값은 모든 항목에 대해 "정의되지 않음"으로보고되었습니다. 나는 필드의 적절한 이름을 지정하고 쿼리가 제대로 구성되었는지 5 배로 확인했습니다.

결국 참조하려는 필드가 목록의 기본보기에 표시되지 않는다는 것을 발견했습니다. 기본보기의 필드를 포함하도록 목록 속성을 변경하자마자 적절한 필드 값이 내 javascript 내에서 반환되었습니다.

셰어 포인트의 토대가 얼마나되는지는 모르겠지만 SPServices GetListItems 메서드가 실제 기본 목록이 아닌 목록의 기본보기에서 데이터를 가져옴을 의미하기 때문에 매우 놀랐습니다. 나는이 해석에서 내가 잘못 될 수 있다는 것을 알지만 다른 사람들도이 같은 문제에 부딪 힐 수 있다고 상상한다.

답변

4

기본적으로 신뢰할 수는 없지만 GetListItems가 작동하는 방식은 입력시 ViewFields을 지정하지 않으면 기본 목록보기 에 표시된 모든 필드를 반환한다고 가정합니다. 이것은 신뢰할 수 없습니다. 이제는 작동하게되었지만 나중에 누군가가 따라 와서 기본보기를 변경하여 달콤한 맞춤 설정을 깨뜨릴 수있었습니다. 파머. :) GetListItems 메서드에 관심이있는 ViewField를 항상 나열하는 것이 좋습니다. 이것은 그들이 설정되면 당신을 얻을 것이다 보장합니다. 맞습니다. 아직 정의되지 않은 필드가있는 행을 얻을 수 있습니다. 이것은 주로 행에 설정되지 않은 조회 유형의 필드에서 발생합니다.

이 정보가 도움이되기를 바랍니다. 지난 몇 년 동안 SPServices에 대한 래퍼를 직접 작성하여 요청한 모든 필드에 대한 참조가 Sharepoint에 의한 응답이 아니더라도 반환되도록했습니다.

+0

폴 감사합니다. 이제는 나에게 훨씬 의미가 있습니다. 나는 내 문제가 내 자신의 무지 때문이라고 생각했다. 오 잘 - 누군가 다른 사람이 아마 내가했던 것과 똑같은 실수를 저 지르게 될 것이고, 이제 그들은 그것을 고칠 올바른 방법을 찾을 것입니다. 감사! – Ryk

+0

다행 Ryk를 도울 수있었습니다. #SPServices를 처음 사용하기 시작했을 때 몇 가지 목록에서이 점에 대해서 조금 곰곰이 생각했습니다. –

0

SPServices의 GetListItems 메서드를 사용할 때 목록에서 참조하는 필드가 목록의 기본보기에 포함되어 있는지 확인하십시오. 그렇지 않으면 정의되지 않은 값이 반환됩니다.

관련 문제