Este artículo describe brevemente la implementación de la carga diferida en controles de uso común.
1. Cargue los datos cuando se muestra la interfaz por primera vez. La carga diferida más simple puede cargar datos cuando el control se muestra por primera vez. Por ejemplo, si tiene muchas pestañas, los datos solo se cargarán cuando el usuario cambie a esta. pestaña.
El método virtual SetVisibleCore se proporciona en .NET Control. Cuando el valor detectado es verdadero y se llama a este método por primera vez, se llama a la carga diferida. Pero no recomiendo este método porque tienes mejores lugares.
- Si su control hereda de Form o UserControl, se recomienda sobrecargar OnLoad;
- Si se hereda de Control, OnCreateControl se puede sobrecargar.
A continuación se muestra un ejemplo de carga diferida de datos:
clase pública MyTabPage: TabPage {
anulación protegida void OnCreateControl() {
base.OnCreateControl();
cadena texto antiguo = this.Text;
this.Text = "Cargando..";
//TODO: Llame aquí al método de carga de datos
this.Text = oldText;
}
}
2. El control de árbol se carga cuando se expande por primera vez.
Debido a que todos los nodos en TreeView no heredan de Control, no puede usar el método anterior. Sin embargo, TreeView proporciona el método virtual OnBeforeExpand. La forma más sencilla es agregar una marca de carga al nodo que planea implementar la carga retrasada. la primera expansión, detecta esta marca.
Debe recordar que su nodo de carga diferida no puede recibir este evento en la ubicación raíz.
3. Carga diferida en tablas.
En los programas de Windows, algunos usan paginación para implementar la carga diferida, pero la experiencia del usuario con este método es muy mala. Si aún desea utilizar barras de desplazamiento, puede implementar la interfaz IBindList usted mismo, que contiene una lista de ID de datos internamente. Cuando el formulario solicita datos, los carga en la base de datos.
Pero hay algo que debe tenerse en cuenta aquí. Por ejemplo, cuando el usuario presiona PageDown, el control de la tabla llama continuamente al método de adquisición de datos. Si se llama a la base de datos para cada solicitud, el rendimiento será muy bajo. predicho" Es posible que tengas que leer 50 datos, por lo que puedes leer 50 más a la vez.
Este método no tiene solución cuando se trata de ordenar tablas.
Las anteriores son las técnicas generales de la tecnología de carga diferida. Si tiene un método mejor, infórmeme.