Pergunta

Estou desenvolvendo um controle personalizado com o seu estilo próprio e bloco de script dentro do arquivo ascx.
Tudo bem funciona, mas se eu usar meu controle dentro do meu aspx páginas mais uma vez, os blocos de script e estilo também são repetidas.

Como evitar isso?

Foi útil?

Solução

Enquanto esses blocos estão no próprio controle personalizado, você não pode fazer nada para remover a repetição, você deve considerar movê-los para outro lugar, ou adicioná-los via código.

Editar: Minha resposta assume que você está reclamando repetitivas ligações para o script / arquivos estilos. No entanto, se você está falando sobre scripts completos dentro do controle, consulte _ do rick_schott resposta .

Outras dicas

Script

Você pode usar o objeto ClientScript de registrar o script programaticamente em Page_Load em vez de escrevê-lo em aspx:

if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
    ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "//the javascript code...", true);
}

Styles

Para os estilos, eu não sei se é qualquer mecanismo para conseguir isso. Talvez você possa usar mecanismo de Tema. Eu não usei que mim para que eu não sei como ele funciona ...

A única maneira que eu posso pensar de fazer isso é dividir o controle personalizado em sub-controles.

Criar um controle de "Body" como um styleless e scriptless controle. Em seguida, crie um controle "Designer" que você usa para sugar vários controles "corpo". Então você pode adicionar o controle "Designer" para a página aspx uma vez.

Se você não sabe quantas "corpo" partes" que você precisa em tempo de compilação, adicione um paramater ao '' de controle que permite que você adicione dinamicamente 'Designer partes principais' do código por trás no tempo de execução.

BTW, se você nunca usou controles dinâmicos antes, divirta-se!

Obrigado por todas as respostas. Acabei de criar um controle "helper", que cria meus estilos e scripts, que eu coloquei apenas uma vez na minha página aspx. Então eu posso adicionar várias instâncias do meu controle real sem código redundante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top