Pergunta

Atualmente estou construindo um GridView que tem linhas expansíveis. Cada linha contém um painel criado dinamicamente de elementos do formulário. Agora, eu tenho uma função javascript que se expande (ou no meu caso, torna visível) o painel quando uma imagem é clicado na linha Gridview.

A minha pergunta é ... se existe uma maneira mais eficiente de fazer isso. Em vez de puxar todos os meus dados para começar e construção de cada nova linha como eu vincular, há uma maneira de simples criar a linha com o Painel cheio de caixas de texto e dropdownlists na mosca quando o usuário clica no botão Expandir? "

Eu gostaria de limitar as chamadas do servidor por fazê-lo dessa forma, em vez de como eu atualmente estou fazendo isso, um loop através de todas as linhas e criando um novo painel com elementos de formulário e inserir isso em uma linha que está escondido.

Foi útil?

Solução 4

Na verdade trabalhou isso recentemente em um Handler AJAX retornar a estrutura formulário. É sob demanda, e funciona bem. Simplesmente chamar $ ajax via jQuery, retornar uma estrutura HTML, injetar DIV. É um pouco limitante na funcionalidade real, por isso tome cuidado.

Outras dicas

Na verdade, não é mau desempenho desde a minha consulta SQL original pode preencher cada linha e I permitiram paginação no Gridview. Eu só estou querendo saber se eles podem ser construídos em tempo real usando PageMethods ou algum tipo de solução JSON / AJAX. Eu não vi nada, mas ... vale a pena tentar em procurá-lo.

Você pode substituir o evento RowDataBound, e que adicionar o que os controles que você quer com base no que dados vão na célula.

http: // MSDN .microsoft.com / en-us / library / system.web.ui.webcontrols.gridview.rowdatabound.aspx

Pessoalmente tentando criar os dados on the fly provavelmente resultaria em uma experiência de usuário mais lento.

Quando eu faço coisas como o que você está descrevendo I normalmente usam repetidores, dessa forma eu posso fazer um layout de modelo que simplesmente define todos os elementos necessários de imediato, e ele lida com as acções de ligação.

Caso contrário, eu poderia imaginar que seu caminho não está executando muito lentamente como ela é.

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