Criando dinamicamente muitos casos de ASP.NET UserControls: como faço para criar e onde estarão meus conflitos?

StackOverflow https://stackoverflow.com/questions/3423339

Pergunta

Eu não vi isso implementado antes no ASP.NET, mas estou pensando em uma interface do usuário que ficaria assim:

Visão geral conceitual

  • Um tabcontrol é carregado e a primeira guia contém uma grade
  • Quando uma linha é clicada duas vezes, uma nova guia é criada com os detalhes do registro
  • O conteúdo do detalhe da guia/registro é criado por um userControl
  • Muitas guias podem ser criadas e, portanto, muitos casos do UserControl serão criados

Eu sei que asp.net renomearão meu (runat="server") ID é para mim e que eu posso usar o código do lado do servidor jQuery ou ASP.NET para trabalhar com os IDs ... minhas preocupações são:

  • Como posso pedir ao ASP.NET para gerar um ID exclusivo para cada instância do meu UserControl (a ser renderizada em um espaço reservado)
  • Como faço para criar essa instância extra do controle?
  • O que mais eu preciso ter em mente?

Já que não quero postagens, estou pensando em basear minha implementação do ComponentArt Controle de retorno de chamada, e usando asp.net UserControls para alcançar esse efeito. Isso me permitirá fazer a maioria das coisas que exigem um postback, mas não atualizam todos os elementos em uma página ... apenas a seção que contém o controle do usuário. Dito isto, não estou ligado a uma implementação específica.

Foi útil?

Solução

Você deve procurar no método Page.loadControl. Funciona bem e, até onde eu me lembro que você colocou os espaços reservados em sua página e carrega os controles nos espaços reservados, é assim que você controla os IDs.

Uma coisa que não funciona tão bem com essa abordagem é quando seu controle levanta eventos que seu objeto de página precisa lidar. Se o seu controle for auto -contido, no entanto, você não deve ter um problema.

Isso pode ajudá -lo a começar:http://www.codeproject.com/kb/aspnet/loadinguserControl.aspx

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