#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