2017-05-31 8 views
1

私はリソース名(people picker列)を選択すると残りのEmpID、 プロジェクトとマネージャーの列を入力する必要があります。これらの列はすべて「EmpDetails」という名前のリストにあります。 CAMLクエリを使用しようとしましたが、成功できませんでした。これは私のコードです:Sharepoint 2013の別のリストからPeoplepickerフィールドの詳細を取得します。

<tr class="container"> 
<div id="container"> 
    <table id="table"> 
     <thead> 
     <tr> 
      <th>Resource Name</th> 
      <th>EmpID</th> 
      <th>Projects</th> 
      <th>Manager</th> 
      <th></th> 
      <th></th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr> 
      <td><span id="resourcename"></span></td> 
      <td><input type="text" id="txtempid" placeholder="Emp ID"/></td> 
      <td><input type="text" id="txtprojects" placeholder="Projects"/></td> 
      <td><input type="text" id="txtreportmgr" placeholder="Reporting Manager"/></td> 
      <td><input type="button" id="delrow" value="-" onclick="deleteRow(this)"/> </td> 
      <td><input type="button" id="addrow" value="+" onclick="addRow()"/> </td> 
     </tr> 
     </tbody> 
    </table> 
</div> 
</tr> 

Javascriptコード:

$(document).ready(function() { 
     ConvertoToRequestPeoplePicker('resourcename'); 
     BindData(); 


    }); 
    function BindData() 
{ 
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() { 
     context = new SP.ClientContext.get_current(); 
     LoadingMessage(); 
     SPLoaded(); 
    }); 
} 
function SPLoaded() 
{ 
try 
{ 
    var resourceInfoList = context.get_web().get_lists().getByTitle('EmpDetails'); 
    var resourceInfoQuery = new SP.CamlQuery(); 
    resourceInfoQuery.set_viewXml( '<View>' + 
             '<ViewFields>' + 
              '<FieldRef Name=\'EmpID\' />' + 
              '<FieldRef Name=\'Projects\' />' + 
              '<FieldRef Name=\'Manager\' />' + 
             '</ViewFields>' + 
             '<Query>' + 
              '<Where>' + 
               '<Value Type="User">' + itm.get_item("Employee").get_lookupId() + '</Value>'+ 
              '</Where>' + 
              '<OrderBy>' + 
               '<FieldRef Name="Title" Ascending="TRUE" />' + 
              '</OrderBy>' + 
             '</Query>' + 
            '</View>'); 
    var resourceInfoListItems = resourceInfoList.getItems(resourceInfoQuery); 
    context.load(resourceInfoListItems); 
    context.executeQueryAsync(Function.createDelegate(null, LoadConfigurationValues), Function.createDelegate(this, function (sender, arg) { alert("Error in getLoginUser : " + arg.get_message()); waitDialogLoad.close(SP.UI.DialogResult.OK); })); 

} 
    catch(ex) 
    { 
     alert("Something went wrong : "+ex.message); 
     waitDialogLoad.close(SP.UI.DialogResult.OK); 
    } 
} 

私はSharePointで初心者ですし、いくつかのサイトから上記のコードを得ました。これが正しいコードかどうかは分かりませんでした。助けてください。

<Where> 
    <compareOperator> 
     <Value/> 
     <FieldRef/> 
    </compareOperator> 
</Where> 

compareOperatorは通常、 『式』のようなものです:

答えて

0

このようなクエリの「Where'部分が同様に形成されなければならない ...あなたのCAMLクエリが有効ではないようです、 "Lt"など。 値は通常型属性を取得し、fieldrefはリスト(またはライブラリ)項目のどのフィールドをクエリの値と比較するかを定義しています。 >

;あなたは sp jsom how-toをチェックアウトすることができ、より詳細な一見のため

<View> 
    <Query> 
     <Where> 
      <Geq> 
       <FieldRef Name='ID'/> 
       <Value Type='Number'>1</Value>/Geq> 
     </Where> 
    </Query> 
</View> 

:私たちはのような例を取得一緒にすべてのことを置く

関連する問題