0

我正在尝试使用 CAML 查询根据通过 Javascript 检索的“cardID”值从 SharePoint 2007 列表中查找项目。我可以看到该值已分配给变量,但每当我尝试添加查询时,列表不再显示。我希望有更多经验的人可以澄清我做错了什么。

注意:我使用 u2u CAML 工具生成此查询。当我从那里执行它时,它返回一个有效的结果,而不是当我尝试将它与 jQuery 结合使用时。

 <script language = "javascript">  function GetAnnouncementData()  {  var soapPacket = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
    <soapenv:Body> \
     <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
      <listName>eCards</listName> \ 
      <View> \ 
      <Query><Where>
      <Eq>
         <FieldRef Name='Title' />
         <Value Type='Text'>116</Value>
      </Eq></Where> </Query>
       <ViewFields> \   
      <FieldRef Name='Title' /> \ 
      <FieldRef Name='Greeting' /> \   
      <FieldRef Name='Message'/> \
      <FieldRef Name='Card' /> \
       </ViewFields> \ </View> \
     </GetListItems> \
    </soapenv:Body> \    </soapenv:Envelope>";  jQuery.ajax({    >url: "http://localhost/place/_vti_bin/lists.asmx",    type: "POST",    dataType: "xml",    data: soapPacket,    complete: processResult,    contentType: "text/xml; charset=\"utf-8\""   });  }  function processResult(xData, status) {   jQuery(xData.responseXML).find("z\\:row").each(function() {

JSRequest.EnsureSetup(); var cardID = JSRequest.QueryString["cardID"];

 $("<li>" + $(this).attr("ows_Title") + "</li>").appendTo("#AnnouncementData");  });  }

$(document).ready( function(){  GetAnnouncementData();  });   </script>

我还尝试用列表中的预定义值替换“cardID”。仍然没有返回任何结果。:(

4

1 回答 1

0

请先使用 u2u CAML Builder 工具测试您的 CAML 查询: http ://www.u2u.be/res/tools/camlquerybuilder.aspx

您可以使用 Fiddler 查看 Web 服务和运行 JavaScript 的浏览器之间的流量。使用 Chrome 调试 JavaScript(按 F12)。 http://www.fiddler2.com/fiddler2/

此处类似代码:http: //community.office365.com/en-us/forums/153/p/13711/63998.aspx

于 2012-10-23T11:43:03.330 回答