Перечисление атрибутов элементов списка с помощью jQuery в Sharepoint, ссылка на другие JS

#javascript #jquery #sharepoint #attributes

#javascript #jquery #sharepoint #атрибуты

Вопрос:

Итак, в моей компании запущен сервер Sharepoint 2007, и мне было поручено настроить пространство управления проектами через эту службу. Моя цель заключается в следующем — иметь возможность создавать PDF-файлы на стороне клиента, содержащие информацию из любого элемента списка, который выберет пользователь.

На данный момент я определил, что я могу использовать веб-часть общего редактора контента на странице по умолчанию, я могу включить JS в эту веб-часть и что этот JS может извлекать заголовки элементов списка с помощью jQuery. Код, который я использую, показан ниже (заимствован из онлайн-статьи)-

 <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/'> 
                        <listName>Tasks</listName> 
                        <viewFields> 
                            <ViewFields> 
                               <FieldRef Name='Status' /> 
                           </ViewFields> 
                        </viewFields> 
                    </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) {
        $(xData.responseXML).find("z\:row").each(function() {
            var liHtml = "<li>"   $(this).attr("ows_Title")   "</li>";
            $("#tasksUL").append(liHtml);
        });
    }
</script>

<ul id="tasksUL"/> 
  

Проблема 1 — Внутри вызова SOAP Envelope я попытался изменить значение «Имя поля» на «Статус», но обнаружил, что это ничего не дает (если вы сейчас спрашиваете себя, есть ли у меня опыт работы с JS, ответ в значительной степени отрицательный). В методе processResult я попытался изменить атрибут с «ows_Title» на «ows_Status» или «Status» безрезультатно. Я просто возвращаю «undefined» для каждого элемента списка.

Проблема 2. Я хочу, чтобы пользователь мог выбирать элемент списка и генерировать сводку данных в формате PDF. Я знаю о Marak’s PDF.JS библиотека, но я не уверен, как объединить их (другими словами, я не уверен, как вызвать JS из каждого элемента списка или создать отдельный список с именами элементов, который вызывает JS).

Спасибо за всю вашу помощь.

Комментарии:

1. На самом деле, ‘ows_Status’ действительно сработал, я, должно быть, просто ввел его неправильно при редактировании JS. Это помогло- alert (xData.responseText); Тем не менее, все еще нужно выяснить связь…

Ответ №1:

Возможно, вы захотите взглянуть на мою библиотеку jQuery SPServices, чтобы упростить себе задачу. Я выполнил всю работу по SOAP за вас. http://SPServices.codeplex.com