Кнопка «Скрыть / Отключить» на основе значений столбца в Sharepoint 2010 - PullRequest
0 голосов
/ 24 января 2012

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

Я хотел бы знать, как это можно сделать, будь то в Visual Studio 2010 или ECMA Scripts.

Ответы [ 2 ]

0 голосов
/ 12 августа 2015

Я знаю, что этот вопрос старый, но если кому-то все еще нужен ответ: Создайте пользовательское действие в visual studio следующим образом: https://msdn.microsoft.com/en-us/library/office/ff408060(v=office.14).aspx

Это скрывает нужную кнопку, теперь вы можете установить условие с помощью параметра enabledscript, чтобы выбрать, в каком случае кнопка должна быть скрыта:

Просто добавьте этот код после </CommandUIDefinitions>

<CommandUIHandlers>
        <CommandUIHandler
        Command="HideEditRibbon"
        CommandAction="javascript:return true;" EnabledScript="javascript:checkIfNeedsToBeHidden();" />
</CommandUIHandlers>
<CustomAction Id="yourJsReference" Location="ScriptLink" ScriptSrc="yourJsFile.js"></CustomAction>

Если вам это нужно в List-Ribbon, Edit и DisplayForm, вам нужно выполнить 3 пользовательских действия и изменить Location-Part и, возможно, ваш js-код.

0 голосов
/ 24 января 2012

Если вы хотите использовать готовую форму редактирования, вы не собираетесь делать это с кодом на стороне сервера;для этого вам понадобится полностью настраиваемая форма редактирования.

Это означает использование Javascript на странице редактирования, которая хрупка и не мешает пользователям сохранять данные, если они знают, что делают.

Поле ввода для каждого столбца будет иметь атрибут «title» с именем столбца.JQuery довольно легко может найти элемент с заголовком title = 'имя столбца', поэтому вы узнаете, если вам нужно скрыть кнопку сохранения.К кнопке сохранения не так легко добраться.Вы можете попытаться получить ввод с помощью type = button и value = save.

Если важно иметь реальную защиту вокруг этого, чтобы независимо от того, что кто-то не мог редактировать элемент в этом состоянии, вы можете использоватьполучатель события для события ItemUpdating.Просто проверьте свойства элемента и используйте properties.Cancel = true;(или что-то в этом роде), так что даже если они отключат ваш JavaScript и все равно сохранят событие, оно не будет сохранено.Если вам нужна помощь в добавлении получателя событий или получении его работы, просто спросите.

Изменить: В своем комментарии вы говорите, что просто хотите полностью запретить доступ к форме редактирования при определенных условиях.Для этого я бы сделал новый элемент управления webpart / user и добавил бы его на страницу редактирования.В этом разделе вы можете выбрать соответствующий элемент (идентификатор элемента будет параметром запроса) и посмотреть, должна ли страница быть «видимой».Если нет, то вы можете перенаправить на другую страницу.

Еще одним дополнением к вышеупомянутому будет попытка отредактировать представление списка таким образом, чтобы для определенных элементов не было ссылки на редактирование.Это будет значительно сложнее, и я сомневаюсь, что это будет возможно (практически) с готовыми веб-страницами.Вам необходимо иметь полностью настраиваемую страницу просмотра списка, чтобы контролировать, какие элементы имеют ссылки на страницу редактирования.(Другие могут смело поправлять меня здесь.)

...