Maneira mais limpa de implementar entradas recolhíveis em uma tabela gerada via asp:Repeater?

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Antes que alguém sugira descartar completamente as tags da tabela, estou apenas modificando esta parte de um sistema muito grande, então não seria sensato revisar a estrutura da tabela (o aplicativo está cheio de tabelas semelhantes).

Este é um webapp em C# .NET - os dados vêm de um webservice e são exibidos na tela em uma tabela.As linhas da tabela são geradas com asp:Repetidores, para que as linhas alternem bem as cores.A tabela anteriormente continha um item de dados por linha.Agora, essencialmente, a tabela tem subcabeçalhos...A primeira linha é a data, a segunda linha mostra uma linha de dados e todas as próximas linhas são linhas de dados até que os dados de uma nova data cheguem, caso em que haverá outra linha de subcabeçalho.

No começo pensei que poderia trapacear um pouco e fazer isso com bastante facilidade para manter a estrutura atual do repetidor - só preciso alimentar algumas células com a string vazia para que nenhum dado apareça nelas.Agora, no entanto, estamos considerando um desses colapsadores +/- ao lado de cada data, para que possam recolher todos os dados.Minha mente imediatamente passou a ocultar linhas quando um botão era pressionado...mas não sei como ocultar linhas do código por trás, a menos que a linha tenha um ID exclusivo, e não tenho certeza se você pode fazer isso com repetidores.

Espero ter expressado bem o problema.Tenho certeza que vou encontrar uma maneira, TBH, mas acabei de ver este site no slashdot e pensei em dar uma olhada :)

Foi útil?

Solução

Ao construir a linha no evento de ligação de dados, você pode adicionar um identificador exclusivo usando, digamos, o id do campo de dados ou qualquer outra coisa que você use para torná-lo único.

Então você poderia usar um método do lado do cliente para expandir o recolhimento se quiser preenchê-lo com dados no início, alternando a configuração style.display em Javascript para o elemento de linha da tabela.

Outras dicas

basta agrupar o conteúdo do modelo de item em um asp:Panel e você terá um ID exclusivo. Então jogue dentro algum jquery para um pouco de tempero ;)

editar:acabei de notar que você está usando uma mesa.coloque o id na linha.em seguida, alterne-o.

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