Este artigo descreve brevemente a implementação do carregamento lento em controles comumente usados.
1. Carregue os dados quando a interface for exibida pela primeira vez. O carregamento lento mais simples pode carregar os dados quando o controle for exibido pela primeira vez. Por exemplo, se você tiver muitas guias, os dados só serão carregados quando o usuário alternar para esta. guia.
O método virtual SetVisibleCore é fornecido no .NET Control Quando o valor detectado é verdadeiro e esse método é chamado pela primeira vez, o carregamento lento é chamado. Mas não recomendo esse método porque você tem lugares melhores.
- Caso seu controle herde de Form ou UserControl, é recomendado sobrecarregar o OnLoad;
- Se herdado de Control, OnCreateControl pode ser sobrecarregado.
Aqui está um exemplo de carregamento lento de dados:
classe pública MinhaTabPage : TabPage {
substituição protegida void OnCreateControl() {
base.OnCreateControl();
string oldText = this.Text;
this.Text = "Loading..";
//TODO: Chame o método de carregamento de dados aqui
this.Text = oldText;
}
}
2. O controle de árvore é carregado quando é expandido pela primeira vez.
Como todos os nós em TreeView não herdam de Control, você não pode usar o método acima. No entanto, TreeView fornece o método virtual OnBeforeExpand. A maneira mais simples é adicionar uma marca carregada ao nó que você planeja implementar o carregamento atrasado. a primeira expansão, detecte esta marca.
Você deve se lembrar que seu nó de carregamento lento não pode receber este evento no local raiz.
3. Carregamento lento em tabelas.
Nos programas do Windows, alguns usam paginação para implementar o carregamento lento, mas a experiência do usuário com esse método é muito ruim. Se ainda quiser usar barras de rolagem, você mesmo pode implementar a interface IBindList, que contém uma lista de IDs de dados internamente. Quando o formulário solicita dados, ele carrega os dados no banco de dados.
Mas há algo que deve ser observado aqui. Por exemplo, quando o usuário pressiona PageDown, o controle da tabela chama continuamente o método de aquisição de dados. Se o banco de dados for chamado para cada solicitação, o desempenho será muito baixo. previsto" para Você pode ter que ler 50 dados, então você pode ler mais 50 dados de uma vez.
Este método não tem solução quando se trata de classificação de tabelas.
Acima estão as técnicas gerais da tecnologia de carregamento lento. Se você tiver um método melhor, por favor, me esclareça.