Optimering af brugeroplevelse i ASP.NET Grid Search and Selection
At give kunderne mulighed for at søge og vælge objekter inden for en grid-grænseflade er en hyppig funktion i ASP.NET-applikationer. Udviklere støder dog ofte på et problem: gitteret opdateres, og søgeparametrene går tabt, når et element vælges. Fordi de skal genstarte deres søgning, hver gang de vælger et nyt element, kan dette irritere brugerne.
Det er bydende nødvendigt at bevare søgekriterierne efter en postback eller gitteropdatering for at forbedre brugervenligheden. Dette er særligt afgørende, når forbrugerne skal vælge flere muligheder baseret på de samme standarder. Processen gentages unødigt, hvis søgetermerne går tabt.
Heldigvis kan vi sikre, at søgeordene fortsætter, selv efter at have valgt et element i gitteret ved at bruge JavaScript og de indbyggede funktioner i ASP.NET. Gennem brug af metoder, der komplementerer DataTables og visningstilstanden for ASP.NET, kan vi gøre brugeroplevelsen mere smidig.
Vi vil se på, hvordan man bruger JavaScript og VB.Net til at opnå dette i et ASP.NET-projekt i vejledningen, der følger. Vi vil også gennemgå et scenarie i den virkelige verden for at vise dig, hvordan du effektivt vedligeholder søgekriterier, mens du opdaterer dit gitter.
Kommando | Eksempel på brug |
---|---|
sessionStorage.getItem() | Søgeparametrene kan hentes med denne kommando fra browserens sessionslager. I dette tilfælde henter den den søgeværdi, der tidligere blev angivet, og sørger for, at søgefeltet udfyldes igen efter en sideopdatering eller gitteropdatering. |
sessionStorage.setItem() | Gemmer den aktuelle søgeforespørgsel i browserens sessionslager. Dette forhindrer, at søgeparametrene går tabt i tilfælde af, at brugeren vælger et element, eller ASP.NET-gitteret poster tilbage. |
ScriptManager.RegisterStartupScript() | Registrerer og kører et ASP.NET klientsidescript fra serveren. For at gemme søgeværdien i gitterets søgefelt, bruges den her til at anvende de gemte søgekriterier enten ved sideindlæsning eller efter en tilbagesendelse. |
DataTable().search() | Efter en opdatering eller sideindlæsning anvendes den cachelagrede søgeværdi tilbage til gitteret ved hjælp af denne DataTables-metode. Det garanterer, at gitteret er filtreret i henhold til den søgeforespørgsel, der tidligere blev indtastet. |
DataTable().draw() | Anvender søgekriterierne og gentegner datatabellen. Når siden opdateres eller opdateres ved hjælp af AJAX eller en anden teknik, er denne kommando påkrævet for at genanvende søgetermerne og vise de filtrerede data. |
on('keyup') | Tilføjer en hændelseshandler til søgeindtastningsfeltet, så hvert tastetryk registreres. I dette tilfælde sikrer det, at søgeværdien bibeholdes, selvom gitteret opdateres eller genindlæses ved at opdatere sessionslageret med det aktuelle søgeinput. |
__doPostBack() | Denne ASP.NET-funktion sender data tilbage til serveren ved at bruge JavaScript til at starte en tilbagesendelse. Når et element i gitteret er valgt, bruges scriptet til at kommunikere den aktuelle søgeværdi til serveren, hvilket garanterer, at søgetilstanden opretholdes under server-side processer. |
$.ajax() | Sender serveren en asynkron HTTP-anmodning. I dette tilfælde hjælper det med at bevare søgeinputtet, mens du opdaterer specifikke områder af webstedet (såsom gitteret) med AJAX ved at sende søgekriterierne til serveren uden at genindlæse hele siden. |
Forstå scriptløsninger til at bevare søgekriterier i ASP.NET Grid
Formålet med de tilbudte scripts er at løse et almindeligt problem i ASP.NET-applikationer, hvor brugere mister overblikket over deres søgeparametre, når de foretager et valg fra et gitter. Den første tilgang gemmer søgeinputtet på klientsiden ved at bruge JavaScript sessionStorage fungere. Brugeroplevelsen forbedres af denne strategi, som sikrer, at søgesætningen forbliver aktiv, selv efter at hjemmesiden genindlæses. Når siden genindlæses eller et element er valgt, kan den cachelagrede søgeværdi anvendes på gitteret igen ved at fange og gemme input lokalt. Brugeren behøver ikke at blive ved med at indtaste de samme kriterier takket være denne metode.
En anden metode bruger serversiden ViewState funktion i ASP.NET. I dette tilfælde bevares søgeværdien i ViewState-objektet, som bevarer data på tværs af tilbagesendelser. Værdien, der opbevares i ViewState, sendes tilbage til siden, når en bruger interagerer med gitteret og vælger et element. Denne metode garanterer, at søgeparametrene er tilgængelige for hele sessionen og nemt inkorporeres i server-sidebehandlingen. For at forhindre tab af søgeinput kan serveren derefter køre et script for at genanvende søgningen på klientsidens gitter.
AJAX bruges i den tredje tilgang til at stoppe genindlæsninger af hele sider. Den dynamiske opdatering af siden sker, når et element er valgt, hvilket udløser en asynkron anmodning til serveren. Dette holder søgekriterierne - som er givet med AJAX-anmodningen - i takt, mens gitteret opdateres. Når opdateringen er afsluttet, genbruger JavaScript-funktionen søgeværdien på gitteret. Denne teknik opdaterer materiale asynkront, mens gitterets tilstand bevares for at maksimere brugeroplevelsen.
På en anden måde garanterer hver af disse metoder bevarelsen af søgeinput. Til enklere klientsideløsninger er sessionStorage-teknikken passende, mens ViewState tilbyder en mere omfattende ASP.NET-strategi. AJAX sikrer, at brugerhandlinger ikke forstyrrer søgeprocessen ved at give en balance mellem server-side opdateringer og klient-side interaktivitet. Hver løsning overholder bedste praksis for ydeevne og brugervenlighed med det mål at minimere brugerfriktion og bevare en problemfri ASP.NET-netbaseret datainteraktionsoplevelse.
Vedligeholdelse af søgekriterier i ASP.NET Grid efter varevalg
Fremgangsmåde 1: Brug af JavaScript med Session Storage (Client-Side)
// JavaScript to store search criteria in session storage
$(document).ready(function() {
var searchValue = sessionStorage.getItem('searchValue') || '';
var table = $('#gridViewArtifacts').DataTable({
lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
searching: true,
ordering: true,
paging: true
});
table.search(searchValue).draw(); // Apply search from session
$('#gridViewArtifacts_filter input').on('keyup', function() {
sessionStorage.setItem('searchValue', $(this).val());
});
});
Bevarelse af søgeinput under postbacks i ASP.NET
Fremgangsmåde 2: Brug af ASP.NET ViewState (Server-Side)
' VB.NET Code-Behind: Store search criteria in ViewState
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
ViewState("SearchValue") = String.Empty
End If
End Sub
Protected Sub chkSelect_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
' Retain search criteria in ViewState
Dim searchValue As String = CType(ViewState("SearchValue"), String)
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "ApplySearch",
"document.getElementById('gridViewArtifacts_filter').value = '" & searchValue & "';", True)
End Sub
' Frontend JavaScript to capture search input
$(document).ready(function() {
$('#gridViewArtifacts_filter input').on('input', function() {
__doPostBack('UpdateSearch', $(this).val());
});
});
Bevarelse af søgekriterier Brug af AJAX til at forhindre genindlæsning af fuld side
Fremgangsmåde 3: AJAX til delvise sideopdateringer
// JavaScript for AJAX request to retain search after item selection
$(document).ready(function() {
$('#gridViewArtifacts').DataTable({
lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
searching: true,
ordering: true,
paging: true
});
$('#chkSelect').on('change', function() {
var searchValue = $('#gridViewArtifacts_filter input').val();
$.ajax({
type: 'POST',
url: 'UpdateGrid.aspx',
data: { searchValue: searchValue },
success: function() {
// Reapply search after AJAX update
$('#gridViewArtifacts').DataTable().search(searchValue).draw();
}
});
});
});
Forbedring af Grid Search Persistence med ASP.NET og JavaScript
Vedligeholdelse af den fremhævede tilstand af de valgte elementer i gitteret efter en sideopdatering eller postback er en afgørende del af at holde ASP.NET-gitterets brugeroplevelse intakt. Brugere forventer, at deres valg forbliver på plads, når de interagerer med andre områder af grænsefladen, når de foretager flere valg. Dette er ofte vanskeligt, da visse tilstande kan nulstilles som følge af netmodifikationer. Brug af JavaScript og EnableViewState attribut til at gemme og genanvende valgtilstanden efter tilbagesendelser er en måde at løse dette på.
Udviklere kan bruge lagring på klientsiden, f.eks lokalopbevaring eller sessionStorage, for at holde styr på de objekter, der er blevet plukket ud over at gemme søgekriterier. Dette er især nyttigt i situationer, hvor brugerne vælger flere produkter på én gang. JavaScript kan bruges til at genanvende markeringen på gitteret, efter at siden er genindlæst, ved at gemme de valgte element-id'er. Ved at forhindre brugerhandlinger i at gå tabt, forbedrer denne teknik i høj grad hele brugeroplevelsen.
Bedre hastighed er garanteret for mere indviklede gitter, især dem, der administrerer store datasæt, ved at bruge AJAX-opdateringer. Delvise ændringer kan foretages, mens søgeparametrene og udvalgte objekter holdes intakte, hvilket sparer behovet for at genindlæse hele gitteret. En mere flydende og interaktiv grid-oplevelse opnås ved at kombinere AJAX med logik på serversiden, som gør det muligt for hjemmesiden at tilpasse sig dynamisk til brugeraktiviteter uden at forstyrre deres arbejdsgang.
Ofte stillede spørgsmål og deres svar for at bevare søgning og udvælgelse i ASP.NET Grids
- Hvordan kan jeg bevare søgekriterierne efter en tilbagesendelse?
- Søgekriterier kan bevares mellem postbacks ved at gemme søgeinput i sessionStorage eller ViewState.
- Når hjemmesiden opdateres, kan jeg så bevare mine valg i gitteret?
- Ja, ved at bruge JavaScript til at genanvende de valgte vare-id'er, når siden genindlæses og gemme dem i localStorage eller sessionStorage.
- Når du vælger grid-elementer, er der en måde at stoppe siden i at genindlæse helt?
- For delvise sideopdateringer, brug AJAX for at undgå, at gitteret genindlæses totalt og bevare søgeparametrene.
- Kan sorterings- og sidesøgningsvalg bevares mellem tilbagesendelser?
- Ja, ansæt DataTables; alternativt udnytte sessionStorage eller den ViewState ejendom for at opretholde tilstanden.
- Varevalg i gitteret og søgepersistens sammen?
- Ja, du kan bruge JavaScript til at genanvende søgekriterierne og udvalgte elementer ved genindlæsning af siden efter at have gemt dem i sessionStorage.
Endelige tanker om søgning og udvælgelse i ASP.NET Grids
Forbedring af brugeroplevelsen i ASP.NET-gitter kræver, at søgekriterier holdes på plads, når elementer er valgt. Klientside- og serversidestrategier garanterer, at brugere bevarer deres søgeinput under postbacking. Dette resulterer i en mere problemfri og brugervenlig grænseflade.
Bevarelse af søgeinput og udvalgte elementer, enten ved ViewState fastholdelse eller JavaScript opbevaring, er målet. Dette bør minimere irritation. Ved at bruge disse teknikker kan du bevare den dynamiske og brugervenlige karakter af dine netbaserede apps, samtidig med at du forbedrer den overordnede brugervenlighed.
Referencer og kildemateriale til ASP.NET Grid Search Persistence
- Detaljerede oplysninger vedr ASP.NET ViewState og hvordan det bevarer data mellem postbacks blev hentet fra Microsofts officielle dokumentation .
- De Datatabeller integration brugt i JavaScript-søgefunktionen blev refereret fra DataTables officielle dokumentation .
- Brugen af sessionStorage i JavaScript til lagring af data på klientsiden blev udforsket ved hjælp af eksempler fra MDN Web Docs .
- Vejledning om implementering AJAX for at forhindre genindlæsning af sider, mens gittertilstanden opretholdes, blev der indsamlet fra W3Schools AJAX tutorial .