Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
Evento solo cuando se cambia la ubicación de la página en Blazor

nuevo en Blazor. Actualmente estoy trabajando en una aplicación Blazor que usa componentes DevExpress, lo que dificulta un poco el desplazamiento. Quiero que la aplicación se cargue al comienzo de la página cada vez que navego a una nueva página. Actualmente, una solución temporal que encontré es usar el método OnAfterRenderAsync del diseño de navegación principal para llamar a esta función.

 protected override async Task OnAfterRenderAsync(bool firstRender) { await JsRuntime.InvokeVoidAsync("ScrollTop"); }

El método anterior se utiliza en el componente MainLayout. Su implementación está disponible en un archivo JS diferente que es

 function ScrollTop() { document.getElementsByClassName('content')[0].scrollTop = 0; }

Este es un método algo torpe porque aunque las páginas se cargan en la parte superior, cualquier cambio en los componentes de la página hace que la página se desplace hacia arriba nuevamente. ¿Hay alguna manera de hacer esto donde el evento se dispararía solo si se cambia la ubicación de la página?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar este método. Cree un nuevo archivo JavaScript en su carpeta wwwroot. Por ejemplo ScrollToTop.js. Dentro pon tu código con función de exportación.

 export function Scroll() { document.getElementsByClassName('content')[0].scrollTop = 0; }

En su componente, cree un método OnAfterRenderAsync y dentro de él llame a su función:

 protected override async Task OnAfterRenderAsync(bool firstRender) { await using var module = await JSRuntime.InvokeAsync<IJSObjectReference>("import", "./ScrollToTop.js"); await module.InvokeVoidAsync("Scroll"); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Tenga esto en su MainLayout.razor

 @inject NavigationManager NavigationManager protected override void OnInitialized() { NavigationManager.LocationChanged += OnLocationChanged; } async void OnLocationChanged(object sender, LocationChangedEventArgs args) { await JsRuntime.InvokeVoidAsync("ScrollTop"); } public void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda