ASP.NET Grid Search and Selection -käyttökokemuksen optimointi
Asiakkaiden mahdollisuus etsiä ja valita kohteita ruudukkorajapinnassa on yleinen ominaisuus ASP.NET-sovelluksissa. Kehittäjät kohtaavat kuitenkin usein ongelman: ruudukko päivittyy ja hakuparametrit menetetään, kun kohde valitaan. Koska heidän on aloitettava haku uudelleen aina, kun he valitsevat uuden kohteen, tämä voi ärsyttää käyttäjiä.
Hakuehdot on ehdottomasti säilytettävä takaisinlähetyksen tai ruudukon päivityksen jälkeen käytettävyyden parantamiseksi. Tämä on erityisen tärkeää silloin, kun kuluttajien on valittava useita vaihtoehtoja samojen standardien perusteella. Prosessi toistetaan tarpeettomasti, jos hakutermit katoavat.
Onneksi voimme varmistaa, että hakusanat jatkuvat myös kohteen valitsemisen jälkeen käyttämällä JavaScriptiä ja ASP.NETin sisäänrakennettuja ominaisuuksia. Käyttämällä DataTablesia ja ASP.NETin näkymätilaa täydentäviä menetelmiä voimme tehdä käyttökokemuksesta sujuvamman.
Seuraavassa oppaassa tarkastellaan, kuinka JavaScriptin ja VB.Netin avulla tämä saavutetaan ASP.NET-projektissa. Käymme myös läpi tosielämän skenaarion näyttääksemme, kuinka voit ylläpitää hakuehtoja tehokkaasti, kun päivität ruudukkoasi.
Komento | Esimerkki käytöstä |
---|---|
sessionStorage.getItem() | Hakuparametrit voidaan hakea tällä komennolla selaimen istuntomuistista. Tässä tapauksessa se hakee aiemmin annetun hakuarvon ja varmistaa, että hakukenttä täytetään uudelleen sivun päivityksen tai ruudukon päivityksen jälkeen. |
sessionStorage.setItem() | Tallentaa nykyisen hakukyselyn selaimen istuntomuistiin. Tämä estää hakuparametrien katoamisen, jos käyttäjä valitsee kohteen tai ASP.NET-ruudukko lähettää takaisin. |
ScriptManager.RegisterStartupScript() | Rekisteröi ja suorittaa ASP.NET-asiakaspuolen komentosarjan palvelimelta. Hakuarvon tallentamiseksi ruudukon hakukenttään sitä käytetään tässä tallennettujen hakuehtojen soveltamiseen joko sivun latauksen yhteydessä tai takaisinlähetyksen jälkeen. |
DataTable().search() | Päivityksen tai sivun latauksen jälkeen välimuistissa oleva hakuarvo otetaan takaisin ruudukkoon tällä DataTables-menetelmällä. Se takaa, että ruudukko suodatetaan aiemmin syötetyn hakukyselyn mukaan. |
DataTable().draw() | Käyttää hakuehtoja ja piirtää Datataulukon uudelleen. Kun sivu päivitetään tai päivitetään AJAXilla tai muulla tekniikalla, tämä komento tarvitaan hakutermien uudelleen käyttämiseen ja suodatettujen tietojen näyttämiseen. |
on('keyup') | Lisää tapahtumakäsittelijän haun syöttöruutuun, jotta jokainen näppäinpainallus tallennetaan. Tässä tapauksessa se varmistaa, että hakuarvo säilyy, vaikka ruudukko päivitetään tai ladataan uudelleen päivittämällä istunnon tallennus nykyisellä hakusyötteellä. |
__doPostBack() | Tämä ASP.NET-toiminto lähettää tiedot takaisin palvelimelle käyttämällä JavaScriptiä takaisinlähetyksen aloittamiseen. Kun ruudukon kohde on valittu, komentosarjaa käytetään viestimään nykyinen hakuarvo palvelimelle, mikä takaa, että hakutila säilyy palvelinpuolen prosessien aikana. |
$.ajax() | Lähettää palvelimelle asynkronisen HTTP-pyynnön. Tässä tapauksessa se auttaa säilyttämään hakusyötteen ja päivittämään tiettyjä verkkosivuston alueita (kuten ruudukkoa) AJAX:lla lähettämällä hakuehdot palvelimelle lataamatta koko sivua uudelleen. |
Komentosarjaratkaisujen ymmärtäminen hakukriteerien säilyttämiseen ASP.NET Gridissä
Tarjottujen komentosarjojen tarkoituksena on ratkaista yleinen ongelma ASP.NET-sovelluksissa, joissa käyttäjät menettävät hakuparametrejaan tehdessään valinnan ruudukosta. Ensimmäinen lähestymistapa tallentaa hakusyötteen asiakaspuolelle JavaScriptin avulla sessionStorage toiminto. Tämä strategia parantaa käyttökokemusta, mikä varmistaa, että hakulauseke pysyy aktiivisena myös verkkosivuston uudelleenlatauksen jälkeen. Kun sivu latautuu uudelleen tai kohde valitaan, välimuistissa olevaa hakuarvoa voidaan käyttää uudelleen ruudukossa sieppaamalla ja tallentamalla syöte paikallisesti. Tämän menetelmän ansiosta käyttäjän ei tarvitse syöttää samoja kriteerejä.
Toinen menetelmä käyttää palvelinpuolta ViewState ASP.NETin ominaisuus. Tässä tapauksessa hakuarvo säilyy ViewState-objektissa, joka säilyttää tiedot takaisinlähetysten välillä. ViewState-tilassa säilytetty arvo lähetetään takaisin sivulle, kun käyttäjä on vuorovaikutuksessa ruudukon kanssa ja valitsee kohteen. Tämä menetelmä takaa, että hakuparametrit ovat käytettävissä koko istunnon ajan ja että ne sisällytetään helposti palvelinpuolen käsittelyyn. Estääkseen haun syötteen häviämisen palvelin voi sitten suorittaa komentosarjan hakeakseen haun uudelleen asiakaspuolen verkkoon.
AJAX käytetään kolmannessa lähestymistavassa koko sivun uudelleenlatausten pysäyttämiseen. Sivun dynaaminen päivitys tapahtuu, kun kohde valitaan, mikä laukaisee asynkronisen pyynnön palvelimelle. Tämä pitää hakukriteerit – jotka annetaan AJAX-pyynnön mukana – tiukkana ruudukon päivittyessä. Kun päivitys on valmis, JavaScript-funktio lisää hakuarvon uudelleen ruudukkoon. Tämä tekniikka päivittää materiaalia asynkronisesti säilyttäen samalla ruudukon tilan käyttökokemuksen maksimoimiseksi.
Eri tavalla kukin näistä menetelmistä takaa hakusyötteen säilymisen. Yksinkertaisempiin asiakaspuolen ratkaisuihin sessionStorage-tekniikka on sopiva, kun taas ViewState tarjoaa kattavamman ASP.NET-strategian. AJAX varmistaa, että käyttäjien toimet eivät häiritse hakuprosessia tarjoamalla tasapainon palvelinpuolen päivitysten ja asiakaspuolen vuorovaikutteisuuden välillä. Jokainen ratkaisu noudattaa suorituskyvyn ja käytettävyyden parhaita käytäntöjä, ja tavoitteena on minimoida käyttäjien kitka ja säilyttää saumaton ASP.NET-grid-pohjainen tietojen vuorovaikutuskokemus.
Hakukriteerien säilyttäminen ASP.NET-ruudukossa kohteen valinnan jälkeen
Lähestymistapa 1: JavaScriptin käyttö istunnon tallennustilan kanssa (asiakaspuoli)
// 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());
});
});
Hakusyötteen säilyttäminen takaisinlähetysten aikana ASP.NET:ssä
Lähestymistapa 2: ASP.NET ViewStaten käyttö (palvelinpuoli)
' 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());
});
});
Hakuehtojen säilyttäminen AJAXin avulla estämään koko sivun uudelleenlataus
Lähestymistapa 3: AJAX osittaisille sivupäivityksille
// 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();
}
});
});
});
Grid-haun pysyvyyden parantaminen ASP.NET:illä ja JavaScriptillä
Valittujen kohteiden korostetun tilan säilyttäminen ruudukossa sivun päivityksen tai takaisinlähetyksen jälkeen on tärkeä osa ASP.NET-ruudukon käyttökokemuksen säilyttämistä. Käyttäjät odottavat valintansa pysyvän paikoillaan, kun he ovat vuorovaikutuksessa käyttöliittymän muiden osien kanssa tehdessään useita valintoja. Tämä on usein vaikeaa, koska tietyt tilat voivat nollata ruudukon muutosten seurauksena. JavaScriptin ja Ota ViewState käyttöön attribuutti tallentaa ja ottaa uudelleen käyttöön valintatilan takaisinlähetysten jälkeen on yksi tapa ratkaista tämä.
Kehittäjät voivat käyttää asiakaspuolen tallennustilaa, kuten localStorage tai sessionStorage, pitääksesi kirjaa valituista kohteista hakuehtojen tallentamisen lisäksi. Tämä on erityisen hyödyllistä tilanteissa, joissa käyttäjät valitsevat useita tuotteita kerralla. JavaScriptiä voidaan käyttää valinnan lisäämiseen ruudukkoon sivun uudelleenlatauksen jälkeen tallentamalla valitut tuotetunnukset. Estämällä käyttäjän toimien katoamisen tämä tekniikka parantaa huomattavasti koko käyttökokemusta.
Parempi nopeus on taattu monimutkaisemmille ruudukoille, erityisesti niille, jotka hallitsevat suuria tietojoukkoja käyttämällä AJAX-päivityksiä. Osittaisia muutoksia voidaan tehdä samalla, kun hakuparametrit ja valitut objektit säilyvät ennallaan, jolloin koko ruudukko ei tarvitse ladata uudelleen. Sujuvampi ja vuorovaikutteisempi verkkokokemus saavutetaan yhdistämällä AJAX palvelinpuolen logiikalla, jonka avulla verkkosivusto voi mukautua dynaamisesti käyttäjien toimintaan häiritsemättä heidän työnkulkuaan.
Usein kysytyt kysymykset ja vastaukset haun ja valinnan säilyttämiseen ASP.NET-gridissä
- Kuinka voin ylläpitää hakuehtoja takaisinlähetyksen jälkeen?
- Hakuehdot voidaan säilyttää takaisinlähetysten välillä tallentamalla hakusyöte sessionStorage tai ViewState.
- Kun verkkosivusto päivittyy, voinko säilyttää valintani ruudukossa?
- Kyllä, ottamalla JavaScriptin käyttöön valitut tuotetunnukset uudelleen, kun sivu latautuu uudelleen ja tallentamalla ne localStorage tai sessionStorage.
- Onko mahdollista estää sivua latautumasta kokonaan uudelleen ruudukkokohteita valittaessa?
- Käytä osittaisia sivupäivityksiä varten AJAX välttääksesi ruudukon kokonaan uudelleenlatautumisen ja säilyttääksesi hakuparametrit.
- Voidaanko lajittelu- ja sivutusvalinnat säilyttää takaisinlähetysten välillä?
- Kyllä, työllistää DataTables; vaihtoehtoisesti käyttää sessionStorage tai ViewState omaisuutta kunnon ylläpitämiseksi.
- Kohteen valinta ruudukossa ja haun pysyvyys yhdessä?
- Kyllä, voit käyttää JavaScriptiä hakuehtojen ja valittujen kohteiden uudelleenkäyttöön, kun sivu ladataan uudelleen, kun olet tallentanut ne sessionStorage.
Viimeisiä ajatuksia hausta ja valinnasta ASP.NET-gridissä
ASP.NET-ruudukoiden käyttökokemuksen parantaminen edellyttää, että hakukriteerit pidetään paikoillaan, kun kohteet on valittu. Asiakas- ja palvelinpuolen strategiat takaavat, että käyttäjät säilyttävät hakusyöttönsä postbackingin aikana. Tämä johtaa saumattomampaan ja käyttäjäystävällisemmään käyttöliittymään.
Säilyttää hakusyötteen ja valitut kohteet, joko ViewState säilyttäminen tai JavaScript varastointi, on tavoite. Tämän pitäisi minimoida ärsytys. Näitä tekniikoita käyttämällä voit säilyttää ruudukkopohjaisten sovelluksiesi dynaamisen ja käyttäjäystävällisen luonteen ja parantaa samalla yleistä käytettävyyttä.
Viitteet ja lähdemateriaali ASP.NET-ruudukon haun pysyvyyttä varten
- Yksityiskohtaiset tiedot aiheesta ASP.NET ViewState ja kuinka se säilyttää tiedot takaisinlähetysten välillä, on peräisin Microsoftin virallinen dokumentaatio .
- The Datataulukot JavaScript-hakutoiminnossa käytetty integraatio on viittaus DataTablesin virallinen dokumentaatio .
- Käyttö sessionStorage JavaScriptissä asiakaspuolen tietojen tallentamiseen tutkittiin esimerkkien avulla MDN Web Docs .
- Ohjeet toteuttamiseen AJAX sivujen uudelleenlataamisen estämiseksi ruudukon tilaa ylläpitäen kerättiin osoitteesta W3Schools AJAX opetusohjelma .