Skip to content

Adicionando items de menu no SharePoint com C#

Bom dia pessoal, tudo bom?

O menu de um sistema é algo importante para guiar seus usuários nas telas/funcionalidades que as desejam. O SharePoint, como uma grande plataforma que é, trabalha também com menu sem que precisamos desenvolver essa funcionalidade. Ela já existe e se desejar o usuário com permissão poderá adicionar/remover items de menu que será aplicado para o Site Collection, SubSites e etc. Mas muitas vezes queremos deixar isso pronto na solução que estamos desenvolvendo para que no Deploy seja feitas as configurações necessárias de menu e esse é o tema do nosso artigo de hoje.

Para que o menu seja aplicado na solução, antes devemos ter certeza que nossa Master Page está com o controle correto para exibir o menu, tome cuidado para que na Master Page não esteja com um menu estático no código (Isso já aconteceu comigo e perdi um tempinho tentando saber por que o menu não funcionava 🙂 ).

Existe dois tipos de controles que um deles podem estar adicionados na master page.

[code language=”csharp”]
<SharePoint:AspMenu
id="V4QuickLaunchMenu"
runat="server"
EnableViewState="true"
DataSourceId="QuickLaunchSiteMap"
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Vertical"
StaticDisplayLevels="5"
MaximumDynamicDisplayLevels="0"
SkipLinkText=""
CssClass="s4-ql"/>
[/code]

e

[code language=”csharp”]
<SharePoint:AspMenu
ID="TopNavigationMenuV4"
EncodeTitle="false"
Runat="server"
EnableViewState="false"
DataSourceID="topSiteMap"
AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Horizontal"
StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="1"
SkipLinkText=""
CssClass="s4-tn">
[/code]

O primeiro é referente ao menu de contexto atual e o segundo é referente ao menu de contexto corrente. Não vou explicar a diferença nesse artigo, apenas coloquei os controles para que você saiba qual a sua Master Page está utilizando para que seja implementado o código no contexto correto.

Pois bem! Sabendo qual controle sua Master Page está utilizando você agora poderá programar para efetuar as configurações de items de menu. O ideal é que você escreva esse código em uma Feature no método de ativação e no método de desativação destrua o menu que foi configurado.

Abaixo segue o objeto que efetua a configuração do menu dependendo do contexto que sua Master Page está utilizando. A primeira é referente ao contexto atual e a segundo global.

[code language=”csharp”]
rootWeb.Navigation.QuickLaunch;

rootWeb.Navigation.TopNavigationBar;
[/code]

O código que irei demonstrar é relacionado com contexto de menu atual. Segue abaixo o código na ativação de Feature.

[code language=”csharp”]
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (var spWeb = (properties.Feature.Parent as SPWeb))
{
//Make custom landing Page as Site Home Page
if (spWeb != null)
{
var navigation = spWeb.Navigation.QuickLaunch;
var empresaMenu = new SPNavigationNode("Empresa", "SitePages/Company.aspx", false);
navigation.AddAsLast(empresaMenu);
var equipeMenu = new SPNavigationNode("Equipe", "SitePages/Team.aspx", false);
navigation.AddAsLast(equipeMenu);
var NoticiaMenu = new SPNavigationNode("Noticia", "SitePages/News.aspx", false);
navigation.AddAsLast(NoticiaMenu);
spWeb.Update();
}
}
}
[/code]

Como visto, não existe nenhuma complexidade no código acima.

Espero ter ajudado na dica de hoje e até a próxima dica.

Fiquem com Deus.

Published inSharePoint

Be First to Comment

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *