Sharepoint: скрыть поля со страницы публикации - PullRequest
1 голос
/ 19 ноября 2010

У меня есть макет страницы, который наследуется от PublishingLayoutPage.В нем указан ряд полей - содержимое можно посмотреть здесь: http://pastebin.com/L4fmc3qb.

Однако два поля (SendSMS и SendEmail), которые я хочу отображать только в форме редактирования настраница, а не когда она рассматривается как страница.Как скрыть эти поля на показанной странице?

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

Ответы [ 4 ]

3 голосов
/ 19 ноября 2010

В Sharepoint 2010 вы можете сделать это с обычным CSS (я уверен, что он также работает с 2007, но у меня нет системы для тестирования сейчас) - или проверьте вторую часть ответа .

Сначала вы должны загрузить специальный файл CSS, когда вы находитесь в режиме редактирования:

<PublishingWebControls:EditModePanel runat="server" id="editmodestyles">
        <!-- Styles for edit mode only-->
        <SharePoint:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/edit-mode.css %>"
            After="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/normal.css %>" runat="server"/>
    </PublishingWebControls:EditModePanel>

Если у вас теперь есть класс, например hideMeFromPage Вы можете добавить это к своему обычному. Css:

.hideMeFromPage {
    display:none;
}

В вашем файле edit-mode.css вы можете переписать это свойство следующим образом:

.hideMeFromPage {
    display:block !important; //important, just to make sure even though it is loaded after the original declaration ;-)
}

Вам нужно только добавить этот стиль в <div class="byline hideMeFromPage"> и добавить собственный CSS для редактирования, и все готово.


Редактировать: Глупый меня ... Конечно, вы также можете просто поместить свои поля в теги EditModePanel, как описано на MSDN или очень хороший пример страницы с большим количеством ссылок на макеты страниц :

Где предыдущий контроль исследован разрешения пользователя на установку должен ли показываться контент, EditModePanel смотрит, текущая страница отображается или редактируется Режим. Это может быть невероятно полезным в мир WCM для отображения справки сообщения или другой контент для пользователей, как они редактируют страницу. Однако есть другое использование - скрытие навигации, добавление встроенные классы переопределения CSS для использования различное форматирование (особенно полезно) и выдачи отладочной информации в выводе HTML есть все примеры. через Великолепный контроль, который нужно учитывать при создании сайтов Sharepoint

Пример использования:

<PublishingWebControls:EditModePanel SuppressTag="false" GroupingText="Title help" PageDisplayMode="Edit" runat="server" id="EditModePanel1">
    ~~Your fields go in here~~
</PublishingWebControls:EditModePanel>
0 голосов
/ 21 ноября 2018

поместите ваш <SharePointWebControls> тег между <PublishingWebControls:EditModePanel>, сделайте

пример

<PublishingWebControls:EditModePanel runat="server">
        <SharePointWebControls:FieldProperty FieldName="Article Expired Date" PropertyName="Description" runat="server" />
</PublishingWebControls:EditModePanel>
0 голосов
/ 17 апреля 2017

Вы можете ограничить отображение любого контента только в режиме редактирования, используя тег:

    <PublishingWebControls:EditModePanel runat="server">
0 голосов
/ 19 ноября 2010

Обычно это делается путем простого удаления поля из элементов управления на макете страницы в конструкторе sharepoint или в определении пользовательского макета страницы. Определение поля на самом деле является частью типа контента, поэтому, если кто-то будет редактировать свойства страницы, он должен увидеть определенное поле. Но удаление его из полей страницы на самом макете страницы отнимает его у рендеринга.


edit: полностью забыл про элемент управления EditModePanel

http://www.andrewconnell.com/blog/archive/2006/12/23/5535.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...