Получить информацию о поле Peoplepicker из другого списка в Sharepoint 2013

1

У меня есть функциональность в форме custome, где, если я выберу имя ресурса (столбец сборщиков), остальные столбцы EmpID, Projects и Manager должны быть заполнены. Все эти столбцы находятся в списке с именем "EmpDetails". Я попытался использовать запрос CAML, но не смог его выполнить. Это мой код:

<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 и получил вышеуказанный код с некоторого сайта. Я не мог, это правильный код или нет. Пожалуйста помоги.

Теги:
sharepoint-2013

1 ответ

0

Кажется, ваш CAML-запрос недопустим... "Где" -part такого запроса должен быть сформирован следующим образом:

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

compareOperator обычно имеет что-то вроде "Eq", "Lt" и т.д., обычно значение получает атрибут типа, а fieldref определяет, какое поле в элементе списка (или библиотеки) следует сравнивать со значением в запросе.

все вместе мы получаем пример:

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

Для более глубокого просмотра вы можете проверить sp-jsom how-to ;>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню