Как создать страницу, которая выбирает и клонирует часть библиотеки документов в Sharepoint 2007? - PullRequest
2 голосов
/ 21 августа 2011

Я пытаюсь настроить MySite, позволяющий отдельным лицам создавать и изменять несколько проектов, каждый из которых будет содержать частичную копию главной библиотеки документов.Я уже создал библиотеку и загрузил документы, и у меня есть страница, на которой я экспериментировал с тем, как это сделать.

Мне нужно иметь возможность отображать список документов в библиотеке документов.Позвольте пользователю выбрать, какие из них они хотят, и затем, когда они нажимают на кнопку, мне нужно инициализировать базу данных с некоторой информацией об этом проекте, некоторой информацией о каждом из файлов, и документы должны быть скопированы вновое местоположение, так что пользователь может вытащить их, отредактировать и сохранить изменения, относящиеся к одному проекту.Также нам потребуется возможность добавлять / удалять их через аналогичный интерфейс после того, как проект уже создан, если это возможно.

И, к сожалению, все, что использует код, было ограничено;таким образом, мы не можем использовать ничего, что потребует установки чего-либо в GAC, и я даже не могу использовать серверные сценарии в файле ASPX.Кажется, что почти все, что я нахожу, когда я ищу «Главную библиотеку документов клонов Sharepoint 2007» или что-либо подобное, включает использование кода.узнать, как получить список документов для показа, хотя я с трудом копирую его.Он создал <WebPartPages:DataFormWebPart> с <SharePoint:SPDataSource> в нем.Однако, когда я попытался перетащить такие вещи, как Data View CheckBoxList, в список документов, либо он просто не позволит мне удалить его (это включает в себя любое место в форме, а не только в списке документов), или, какна самом деле ожидается, что он не привязывается к каждой строке списка.Мне не совсем понятно, что делать, чтобы создать это.

Я получаю (более или менее), что вы можете связать элементы управления через .xslt в форме, но я полагаю, что это проще, чем писать их вручную, так как дизайнер выглядит такдизайнер Visual Studio.Мне очень трудно понять, что именно нужно сделать, чтобы заставить работать любой элементов управления;большинство из них имеют ту же проблему, что и CheckBoxList, и даже не выпадут в форме.Я предполагаю, что есть панель какого-то типа или что-то еще, что мне нужно сначала добавить в форму, но это так сильно отличается от того, к чему я привык, что мне трудно даже ориентироваться,

Итак, кто-то может указать мне правильное направление здесь?Мне нужно будет иметь возможность создавать проекты, выбирать документы, копировать их вместе с другой информацией в новый проект, включая создание некоторых элементов в базе данных.Я долгое время занимался разработкой программного обеспечения на разных платформах с разными языками, хотя в последнее время это были в основном WinForms, с небольшим количеством файлов .aspx (но ничего особенного), и это никогда не было так сложно.Я полагаю, что здесь есть кое-что, что я не понимаю в модели;Например, как указать форме, которую вы хотите использовать элемент управления x / y / z, связанный с конкретным источником данных?Как вы скажете sharepoint создать новое место для файлов?Как вы можете отправить выбранные файлы, когда они у вас есть, в Sharepoint и указать, куда их копировать?

Любая помощь будет так признательна, что я рвал на себе волосы в течение нескольких дней.:)

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Возможно, у вас произошли изменения в SharePoint 2010, так как существует модель программирования javascript / jQuery, но без этого у вас нет реалистичного кода, который вам понадобится.Возможно, вам повезет, и вы сможете вызывать веб-службы SharePoint с помощью jQuery , но для выполнения требования «без кода» будет много работы.

0 голосов
/ 07 сентября 2011

Хорошо, я наконец-то смог заставить это работать в основном, хотя есть некоторые проблемы с отображением данных, как только я получу их обратно; Я постараюсь обновить этот вопрос, как только у меня будет лучший ответ.

Есть классная библиотека под названием SPServices , которая в сочетании с JQuery предоставляет интерфейс для веб-служб для SharePoint 2007. Похоже, более или менее предоставляет интерфейс для всего, что вам нужно сделать, чтобы использовать веб-сервисы без дополнительной работы с вашей стороны.

Например, чтобы запросить библиотеку документов, я настроил функцию, подобную этой, во вспомогательном классе (на основе примеров из документации SPServices ).

ServiceClass.prototype.getSpecialDocLib = function (onComplete) {
    var sc = this;

    $().SPServices({
        operation: "GetListItems",
        async: false,
        listName: "Special Document Library",
        CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",

        completefunc: function (xData, Status) {
            var outTable = new DocTable();

            $(xData.responseXML).find("[nodeName='z:row']").each(function () {
                var i;
                var outRow = new DocTableRow();

                for (i = 0; i < this.attributes.length; ++i) {
                    outRow.addField(this.attributes[i].localName, this.attributes[i].value);
                };

                outTable.addRow(outRow);
            });

            sc.onDocumentListComplete(xData, Status);

            if (onComplete != null)
                onComplete(resultTable);
        }
    });
};

Для копирования библиотеки документов из одного места в другое, я полагаю, вы можете использовать Списки .AddList для ее создания (специально не задокументировано в SPServices, но основано на этом вызове веб-службы ) либо с нуля, либо по шаблону, и я считаю, что вы можете использовать метод SPServices Copy.CopyIntoItemsLocal .

В любом случае, я, кажется, до сих пор добиваюсь прогресса в этом; Я обновлю и приму этот ответ, как только у меня будет немного больше опыта и времени, чтобы убедиться, что все работает, но пока мне кажется, что я продвигаюсь к цели «без кода».

...