Pergunta

Procurei no google alguns esclarecimentos mas não encontrei as respostas que procurava.

Quero implantar um delegado que execute alguma funcionalidade personalizada.É por isso que com um delegado quero enviar uma classe com código, então fiz o seguinte:

Eu adicionei uma classe:

public class SomeClassForDelegate: WebControl
{
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        writer.WriteLine("<p>Write some text</p>");
        base.Render(writer);
    }
}

Basicamente esta classe irá escrever apenas um texto.A razão pela qual faço isso é apenas para testar se minha classe está sendo usada, normalmente adicionarei funcionalidades totalmente diferentes.

Então eu tenho uma declaração delegada em element.xml:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Control Id="AdditionalPageHead" ControlAssembly="$SharePoint.Project.AssemblyFullName$" ControlClass="mysolution.SomeClassForDelegate"  Sequence="90" />
</Elements>

Que eu implanto com um recurso.

Tudo vai bem e bem, mas no final não vejo o resultado.

O que estou fazendo de errado?

Atualizar:Resolvido

O problema é que o webcontrol não foi colocado como controle seguro.Então, em um element.xml adicionei uma pasta inteira como um local seguro.E estava funcionando.

Obrigado pela contribuição, especialmente Dribbel!

Foi útil?

Solução

Verifique o seguinte:

  • Existe algum aviso nos logs do ULS?
  • É o sequence definido corretamente?
  • Adicionar um ponto de interrupção ajuda (isso verifica se o código está realmente carregado)
  • Verifique se o controle é referenciado na página usando http://blog.mastykarz.nl/checking-what-delegate-controls-activated-site/ ?
  • O controle está registrado como seguro (verifique no web.config após a implantação)?Controles não seguros gerarão um erro nos logs ULS.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top