#sharepoint #sharepoint-2010
#sharepoint #sharepoint-2010
Вопрос:
Как я могу настроить настраиваемые меню действий ленты для определенных представлений списка? Я хочу, чтобы список отображался в представлении по умолчанию, но был скрыт в других представлениях.
Есть идеи?
Ответ №1:
Хотя вопрос старый, но без ответа, я отвечаю на него. Создайте пустой проект Sharepoint в VS2010, добавьте Elements.xml
файл в проект и вставьте в него следующий XML.
<CustomAction Id="MyCustomButton" Sequence="999"
GroupId="Manage"
Location="CommandUI.Ribbon" // Location to display button
RegistrationId="101" // on every list, for a specific list or library put the GUID of list here e.g. RegistrationId="{GUID_OF_LIST}"
RegistrationType="List"
Rights="ManageWebs"
Title="Custom Document Library Button">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition Location="Ribbon.Documents.Manage.Controls._children">
<Button Id="Ribbon.Documents.Manage.Controls.CustomButton" TemplateAlias="o1"
ToolTipDescription="Creates a server side action."
ToolTipTitle="SSRibbon" LabelText="SS Action"
Image32by32="/_layouts/images/ContractClaims/newproject.jpg"
Image16by16="/_layouts/images/ContractClaims/newproject.jpg" Alt="New Project"
Command="{3E04C0C1-12DD-449E-905F-7E88EB9E22B1}"
Sequence="20"/>
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler Command="{3E04C0C1-12DD-449E-905F-7E88EB9E22B1}"
CommandAction="javascript:alert ('Hello World' ) ;" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
Несколько местоположений для отображения кнопки можно найти здесь.Для получения дополнительной информации вверху вы можете использовать соответствующие элементы XML в Google.
Комментарии:
1. Я уже упоминал, что хочу показать пользовательское действие в представлении списка по умолчанию, а не в других представлениях списка, которые есть в списке.
2. @NLV, вы можете использовать
Location=CommandUI.Ribbon.ListView
вCustomAction
теге для этого.
Ответ №2:
Вы можете использовать параметр EnabledScript в CommandUIHandler, где вы можете поместить код javascript и проверить, загружена ли определенная страница / список / представление.
Пример:
<CommandUIHandler
Command="Ribbon.ListItem.CustomGroup.Controls.BtnSayHello.Command"
CommandAction="javascript:alert('Hello');"
EnabledScript="javascript:
function isEnable(){
if(location.href.indexOf('AllItems.aspx') > 0){
return true;
}
return false;
}
isEnable();"
/>