В этой статье, касающихся родным модальных диалогов, я попытаюсь показать как использовать их.
1. Color dialog
Можно отобразить следующим кодом:
SP.UI.ModalDialog.showModalDialog({ url: '/_layouts/morecolors.aspx', args: currentColor, // сюда поместите значение для Old color dialogReturnValueCallback: function (dialogResult, returnValue) { if (dialogResult == SP.UI.DialogResult.OK) $get('myDiv').style.backgroundColor = returnValue; } });
И в returnValue после закрытия диалога вы получите значение цвета в виде строки, например '#222222'.
2. Upload image to
Чтобы дать пользователю возможность выбрать, в какую библиотеку
загружать картинку, можно использовать диалог со следующим url'ом:
/_layouts/RTEUploadDialog.aspx?LCID=1033&Dialog=UploadImage&UseDivDialog=trueЭтот диалог выглядит следующим образом:

Заголовок диалогу, естественно, можно менять произвольным образом. В раскрывающемся списке будут представлены все библиотеки узла. Вернет диалог строку, содержащую html-код, соответствующий тэгу img.
<img src="Shared Documents/test.img" alt="test.img" />
Из
него легко получить тот же самый Url с помощью простейшей
jquery-конструкции: $(returnValue).attr('src').
3. Upload document to
Если заменить в предыдущем примере Dialog=UploadImage на
Dialog=UploadDocument, получим аналогичную форму для загрузки документа
произвольного типа.
Возвращаемое значение в этом случае будет иметь
опять же вид строки с html-кодом, но на этот раз будет содержать ссылку
на файл и img-тэг с картинкой, соответствующей типу файла.
<a href="/Documents/test.doc" /><img class="ms-asset-icon ms-rtePosition-4" src="/layouts/images/iccss.gif" alt="test.doc">test.doc</a>
4. Text editor
Чтобы проинициализировать значение этого диалога, нужно передать в
качестве аргументов объект со свойством value, куда и поместить
начальный текст:
options.args = { value: "initial dialog text goes here" };
5. Attachments
Форма /layouts/attachfile.aspx
принимает параметры ListId (Guid списка) и ItemId (целочисленный ID
элемента списка), и хотя ничего не возвращает, но понять, что вложение
было успешно загружено, можно по dialogResult - а выяснять, что именно
было загружено, придется уже через Client Object Model. Это, видимо,
будет последний файл в соответствующем элементу списка каталоге
вложений. Определить каталог вложений довольно просто:
var listItemAttachmentsFolder = list.RootFolder.SubFolders["Attachments"].SubFolders[listItem.ID];
Также, ничего не возвращает форма добавления нового элемента списка - тоже неприятно, и опять придется прибегать к помощи Client Object Model, хотя конечно очень хотелось бы получить ID записи в виде возвращаемого значения...
Комментариев нет:
Отправить комментарий