ciao a tutti,
sto facendo i miei primi esperimenti con Blazor, spero qui sia il posto giusto...
sto provando cose facili e basiche, ma non trovo soluzione per un problema di utilizzo di JsInterop e codice js..
usando il progetto nuovo di "default" per blazor wasm (VS2022, target fwk 6.0), ho aggiunto un po' di rghe alla tabella in FetchData.razor al fine di vedere la VScroll bar...
Vorrei mettere uno sticky button per testare un "go top" via java script.. Ho aggiunto un file wwwroot\Scripts\myJs.js che scrive un semplice (vedi aspitalia.com/script/1418/Eseguire-Scroll-Interno-Pagina-Blazor.aspx)
function scrollToTop() {
document.documentElement.scrollTop = 0;
}
e l'ho referenziato in index.html,
<script src="_framework/blazor.webassembly.js"></script>
<script src="Scripts/myJs.js"></script>
il markup di FetchData.razor ora include la chamata JsInterop similarmente a
@page "/fetchdata"
@using BlazorApp5.Shared
@inject HttpClient Http
@inject IJSRuntime JSRuntime
...
<button @onclick="OnGoTopClick" type="button" class="btn-sm btn-group-sm" style="bottom:20px; right:20px; position:fixed; z-index:9000;">Go Top</button>
@code{
...
private async void OnGoTopClick()
{
await JSRuntime.InvokeVoidAsync("scrollToTop");
}
}
ma la chiamata fallisce sempre alla prima esecuzione, riportando l'eccezione Microsoft.JSInterop.JSException: Could not find 'scrollToTop' ('scrollToTop' was undefined).
Se faccio il reload della pagina, la chiamata alla funzione js avviene con successo...
quindi mi manca qualche cosa da qualche parte....
VS 2022, a .Net6 wasm prj
Avete qualche indicazione, per favore?
salutoni romagnoli
--
Andrea