Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

218
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda