Приступим..
1. Создаем новый пустой проект SharePoint (New Project -> SharePoint 2010 -> Empty SharePoint Project)
Назовем его RibbonDialog.
Мастер предложит указать URL нашего сайта и выбрать уровень безопасности. Т.к. я планирую обращаться к объектной модели SharePoint, то для уверенности, выберу полный доступ "Deploy as a Farm Solution"
2. Теперь необходимо добавить пустой элемент в созданный проект
Назовем его RibbonDialogElement.
Обратим внимание на то, что в папке Features проекта, автоматически была создана новая фича, в элементы которой и попал наш RibbonDialogElement. Проверить это можно через Feature Designer
3. Создадим кнопку в ленте (Ribbon button)
Для этого, перейдем к редактированию файла Elements.xml и заменим его содержимое на следующий код:
Нажимаем F5. При выборе документа из Shared Documents, в разделе Manage ленты (Location="Ribbon.Documents.Manage) появляется новая кнопка "Show Dialog", при нажатии на которую выпрыгивает alert.
4. Теперь приступим к созданию диалогового окна.
Добавим в проект SharePoint "Layouts" Mapped folder (Правый клик по проекту Add -> SharePoint "Layouts" Mapped folder)
В созданную папку добавим новый элемент Application Page
Дадим странице название DialogContent.aspx
Сейчас определимся с тем, что мы хотим видеть на этой странице.
В качестве примера, выведем имена файлов из библиотеки документов.
Вынесем на страницу новый контрол Label и перейдем к редактированию codebehind нашей страницы
namespace RibbonDialog.Layouts.RibbonDialog { public partial class DialogContent : LayoutsPageBase { protected void Page_Load(object sender, EventArgs e) { SPSite oSiteCollection = new SPSite("http://win2008r2/sites/test"); SPWeb website = oSiteCollection.AllWebs[0]; var documentLibrary = (SPDocumentLibrary)website.Lists["DocumentsLibraryName"]; Label.Text += "
Files:
"; foreach (SPListItem oListItem in documentLibrary.Items) Label.Text += SPEncode.HtmlEncode(oListItem.File.Name) + "
"; } } }
В приведенном листинге, в Label мы выводим имена всех файлов содержащихся в библиотеке "DocumentsLibraryName".
Теперь займемся непосредственно созданием диалогового окна.
Перейдем к редактированию файла Elements.xml и изменим CommandUIHandler следующим образом
< CommandUIHandler Command="ShowRibbonDialogCmd" CommandAction="javascript: function demoCallback(dialogResult, returnValue) { SP.UI.Notify.addNotification('Operation Successful!'); SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK); } var options = { url: '/_layouts/RibbonDialog/DialogContent.aspx', tite: 'Ribbon Dialog', width: 800, height: 600, dialogReturnValueCallback: demoCallback }; SP.UI.ModalDialog.showModalDialog(options);" />
Обратим внимание на параметр url объекта option.
Теперь содержимое нашей страницы будет выводиться внутри диалогового окна.
0 коммент.:
Отправить комментарий