2009-05-07 12 views
3

以下のコードは、一見ウェブサービスを実行して値を返しますが、where句は無視します(リスト内のすべての項目を返します)。これは私が思いついた問題の最も単純な形です。GetListItems Webserviceがクエリフィルタを無視します

TestQueryリストは、ユーザー定義のフィールドを持たない単純なカスタムリストです。フィルターが機能しない理由は誰にも見えますか?

<body> 
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var soapEnv = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'><soapenv:Body><GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>"; 
    soapEnv += "<listName>TestQuery</listName>"; 
    soapEnv += "<Query><Where><Eq><FieldRef Name='Title'/><Value Type='Text'>One</Value></Eq></Where></Query>"; 
    soapEnv += "<ViewFields><ViewFields><FieldRef Name='Title'/></ViewFields></ViewFields><RowLimit>1</RowLimit>"; 
    soapEnv += "</GetListItems></soapenv:Body></soapenv:Envelope>"; 

    $.ajax({ 
     url: "_vti_bin/lists.asmx", 
     type: "POST", 
     dataType: "xml", 
     data: soapEnv, 
     complete: processResult, 
     contentType: "text/xml; charset=\"utf-8\"" 
    }); 
}); 

function processResult(xData, status) { 
      $('#WSResponse').text(status); 
    $(xData.responseXML).find("z\\:row").each(function() { 
     var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>"; 
     $("#tasksUL").append(liHtml); 
    }); 
    //} 
} 
</script> 


<ul id="tasksUL"/> 
<div id="WSResponse"/> 

</body> 

答えて

4

私はあなたがqueryタグ内のクエリタグと視野タグ内の視野を配置する必要があると思うが、何かのようなので:

var soapEnv = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'><soapenv:Body><GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>"; 
    soapEnv += "<listName>TestQuery</listName>"; 
    soapEnv += "<query><Query><Where><Eq><FieldRef Name='Title'/><Value Type='Text'>One</Value></Eq></Where></Query></query>"; 
    soapEnv += "<viewFields><ViewFields><FieldRef Name='Title'/></ViewFields></viewFields><RowLimit>1</RowLimit>"; 
    soapEnv += "</GetListItems></soapenv:Body></soapenv:Envelope>"; 
2

は私も同じ問題に直面していた..「寺のソリューションをクエリの問題を解決した。.. ROWLIMITは私が作った動作するように作ることではなく 『R』と小文字すなわち

これ

<rowLimit> not <RowLimit> 
は...私からの時間のかなりの量をつかん:)コーディングハッピー...

関連する問題