none
Подскажите как можно реализовать такое в SharePoint? RRS feed

  • Вопрос

  • Здравствуйте.
    Есть список, элементы которого содержат вложение в виде Word-документа.

    Как сделать так, чтобы при открытии элемента списка на просмотр (DisplayForm) я мог бы увидеть
    слева на форме - поля списка, а справа - прикреплённый документ в режиме просмотра?

    Т.е. в принципе есть веб-часть "Отображение web-содержимого" в которой можно показать документ на просмотр. Для этого в веб-части, надо указать прямой URL  на документ.

    Но проблема в том, что внешне это выглядит коряво. Сверху поля формы списка, снизу просматриваемый документ (или наоборот). Всё потому, что разметка формы элемента списка содержит всего одну зону "Главную". И никуда кроме как выше или ниже полей формы, эту веб-часть не передвинуть ((

    Кто что может подсказать, на этот счет?


    • Изменено VARD32 20 июля 2018 г. 5:25
    20 июля 2018 г. 5:23

Ответы

  • Подскажите, как указать из JavaScript URL-адрес для веб-части, чтобы та загрузила документ?
    <div id="OpenRelativeCard" style="margin-"><iframe id="LSViewDocInTask" style="width: 700px; height: 800px;"></iframe>
    </div>
    <script language="javascript" type="text/javascript" src="/sites/SiteAssets/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
    var strDocNameEncoded = encodeURI($('input[id^="FileLeafRef"]').val());
    var strDocExt = $('input[id^="FileLeafRef"] + span').html();
    if (strDocExt=='.doc' || strDocExt=='.docx' ||strDocExt=='.xls' || strDocExt=='.xlsx' ) {
    var strDocUrl = "https://yourdomain.sharepoint.com/sites/dev/_layouts/15/WopiFrame.aspx?sourcedoc=https://yourdomain.sharepoint.com/sites/dev/PreviewFormDocLib/" + strDocNameEncoded + strDocExt + "&action=default";
    } 
    else {
    var strDocUrl = "https://yourdomain.sharepoint.com/sites/dev/PreviewFormDocLib/" + strDocNameEncoded + strDocExt;
    } 
    $('#LSViewDocInTask').prop('src', strDocUrl );
    });
    </script>


    • Помечено в качестве ответа VARD32 20 июля 2018 г. 12:42
    • Изменено Mikhail Zhuikov 24 сентября 2018 г. 8:12
    20 июля 2018 г. 12:21

Все ответы

  • Такой вариант можно попробовать реализовать через CSR, а предпросмотр если у вас установлен Office Web Apps, то достаточно в цикле на прикреплённый документ сделать ссылку через iframe :) На счёт корявости веб-части: из коробки SharePoint это в принципе дрова и палки, которые нужно доводить до ума, так что без верстки и кода тут не обойтись :)
    • Изменено Lion SP 20 июля 2018 г. 6:53
    20 июля 2018 г. 6:47
  • Да, Office SharePoint Server (ранее Office Web Apps) установлен.

    Поэтому мне и достаточно указать URL чтобы увидеть документ в Web-странице.

    Идеально было бы подправить форму элемента списка, чтобы можно было вставить эту Web-часть.

    20 июля 2018 г. 9:42
  • Подскажите, как указать из JavaScript URL-адрес для веб-части, чтобы та загрузила документ?
    20 июля 2018 г. 12:06
  • Подскажите, как указать из JavaScript URL-адрес для веб-части, чтобы та загрузила документ?
    <div id="OpenRelativeCard" style="margin-"><iframe id="LSViewDocInTask" style="width: 700px; height: 800px;"></iframe>
    </div>
    <script language="javascript" type="text/javascript" src="/sites/SiteAssets/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
    var strDocNameEncoded = encodeURI($('input[id^="FileLeafRef"]').val());
    var strDocExt = $('input[id^="FileLeafRef"] + span').html();
    if (strDocExt=='.doc' || strDocExt=='.docx' ||strDocExt=='.xls' || strDocExt=='.xlsx' ) {
    var strDocUrl = "https://yourdomain.sharepoint.com/sites/dev/_layouts/15/WopiFrame.aspx?sourcedoc=https://yourdomain.sharepoint.com/sites/dev/PreviewFormDocLib/" + strDocNameEncoded + strDocExt + "&action=default";
    } 
    else {
    var strDocUrl = "https://yourdomain.sharepoint.com/sites/dev/PreviewFormDocLib/" + strDocNameEncoded + strDocExt;
    } 
    $('#LSViewDocInTask').prop('src', strDocUrl );
    });
    </script>


    • Помечено в качестве ответа VARD32 20 июля 2018 г. 12:42
    • Изменено Mikhail Zhuikov 24 сентября 2018 г. 8:12
    20 июля 2018 г. 12:21
  • Михаил, огромное спасибо Вам.
    Подскажите ещё, а как мне "подсмотреть" вот это имя: LSViewDocInTask ?

    20 июля 2018 г. 12:32
  • Михаил, огромнейший Вам респект! Разобрался!
    Может ещё сможете подсказать, как мне всю эту красоту двинуть не ПОД поля, а справа от полей формы?
    20 июля 2018 г. 12:42