Cum să utilizați JavaScript pentru a menține criteriile de căutare într-o grilă ASP.NET după ce selectez elemente

Cum să utilizați JavaScript pentru a menține criteriile de căutare într-o grilă ASP.NET după ce selectez elemente
Cum să utilizați JavaScript pentru a menține criteriile de căutare într-o grilă ASP.NET după ce selectez elemente

Optimizarea experienței utilizatorului în căutarea și selecția în grilă ASP.NET

Oferirea clienților posibilitatea de a căuta și alege obiecte într-o interfață grilă este o caracteristică frecventă în aplicațiile ASP.NET. Cu toate acestea, dezvoltatorii întâmpină frecvent o problemă: grila se reîmprospătează și parametrii de căutare se pierd atunci când este selectat un articol. Deoarece trebuie să repornească căutarea de fiecare dată când aleg un articol nou, acest lucru poate irita utilizatorii.

Este imperativ să păstrați criteriile de căutare după o postback sau o actualizare a grilei pentru a îmbunătăți gradul de utilizare. Acest lucru este deosebit de important atunci când consumatorii trebuie să aleagă mai multe opțiuni pe baza acelorași standarde. Procesul se repetă inutil dacă se pierd termenii de căutare.

Din fericire, ne putem asigura că cuvintele cheie de căutare continuă chiar și după alegerea unui articol din grilă utilizând JavaScript și funcțiile încorporate ale ASP.NET. Prin utilizarea metodelor care completează DataTables și starea de vizualizare a ASP.NET, putem face experiența utilizatorului mai fluidă.

Ne vom uita la cum să folosiți JavaScript și VB.Net pentru a realiza acest lucru într-un proiect ASP.NET în ghidul care urmează. De asemenea, vom parcurge un scenariu real pentru a vă arăta cum să mențineți eficient criteriile de căutare pe măsură ce vă actualizați grila.

Comanda Exemplu de utilizare
sessionStorage.getItem() Parametrii de căutare pot fi recuperați cu această comandă din stocarea sesiunii a browserului. În acest caz, preia valoarea de căutare care a fost furnizată anterior și se asigură că câmpul de căutare este completat din nou după o reîmprospătare a paginii sau o actualizare a grilei.
sessionStorage.setItem() Salvează interogarea de căutare curentă în memoria de sesiune a browserului. Acest lucru împiedică pierderea parametrilor de căutare în cazul în care utilizatorul alege un articol sau în cazul în care grila ASP.NET postează înapoi.
ScriptManager.RegisterStartupScript() Înregistrează și rulează un script ASP.NET pe partea clientului de pe server. Pentru a salva valoarea căutării în caseta de căutare a grilei, aceasta este utilizată aici pentru a aplica criteriile de căutare stocate fie la încărcarea paginii, fie după o postback.
DataTable().search() După o actualizare sau o încărcare a paginii, valoarea de căutare stocată în cache este aplicată înapoi grilei folosind această metodă DataTables. Acesta garantează că grila este filtrată în funcție de interogarea de căutare care a fost introdusă anterior.
DataTable().draw() Aplică criteriile de căutare și redesenează DataTable. Când pagina este reîmprospătată sau actualizată folosind AJAX sau altă tehnică, această comandă este necesară pentru a reaplica termenii de căutare și pentru a afișa datele filtrate.
on('keyup') Adaugă un handler de evenimente la caseta de introducere a căutării, astfel încât fiecare apăsare a tastei să fie înregistrată. În acest caz, se asigură că valoarea căutării este menținută chiar dacă grila este reîmprospătată sau reîncărcată prin actualizarea stocării sesiunii cu intrarea curentă de căutare.
__doPostBack() Această funcție ASP.NET trimite date înapoi către server utilizând JavaScript pentru a iniția un postback. Când este selectat un element din grilă, scriptul este utilizat pentru a comunica serverului valoarea curentă de căutare, garantând că starea de căutare este menținută în timpul proceselor de pe partea serverului.
$.ajax() Trimite serverului o solicitare HTTP asincronă. În acest caz, ajută la păstrarea intrării de căutare în timp ce actualizați anumite zone ale site-ului web (cum ar fi grila) cu AJAX prin trimiterea criteriilor de căutare către server fără a reîncărca întreaga pagină.

Înțelegerea soluțiilor de script pentru păstrarea criteriilor de căutare în grila ASP.NET

Scopul scripturilor oferite este de a aborda o problemă comună în aplicațiile ASP.NET în care utilizatorii își pierd urma parametrilor de căutare atunci când fac o selecție dintr-o grilă. Prima abordare stochează intrarea de căutare pe partea clientului utilizând JavaScript sesiuneStorage funcţie. Experiența utilizatorului este îmbunătățită de această strategie, care se asigură că expresia de căutare rămâne activă chiar și după reîncărcarea site-ului. Când pagina se reîncarcă sau este selectat un articol, valoarea căutării din cache poate fi aplicată din nou grilei prin captarea și salvarea locală a intrării. Utilizatorul nu va trebui să continue să introducă aceleași criterii datorită acestei metode.

O altă metodă folosește partea serverului ViewState caracteristica ASP.NET. În acest caz, valoarea căutării este păstrată în obiectul ViewState, care păstrează datele peste postback. Valoarea păstrată în ViewState este transmisă înapoi către pagină atunci când un utilizator interacționează cu grila și selectează un articol. Această metodă garantează că parametrii de căutare sunt accesibili pentru întreaga sesiune și sunt ușor încorporați în procesarea de pe partea serverului. Pentru a preveni pierderea intrărilor de căutare, serverul poate rula apoi un script pentru a aplica din nou căutarea în grila de pe partea clientului.

AJAX este utilizat în cea de-a treia abordare pentru a opri reîncărcările paginii întregi. Actualizarea dinamică a paginii are loc atunci când este selectat un articol, ceea ce declanșează o solicitare asincronă către server. Acest lucru păstrează criteriile de căutare, care sunt date cu cererea AJAX, în tact în timp ce grila se reîmprospătează. După terminarea actualizării, funcția JavaScript reaplică valoarea de căutare în grilă. Această tehnică actualizează materialul în mod asincron, păstrând în același timp starea rețelei pentru a maximiza experiența utilizatorului.

Într-un mod diferit, fiecare dintre aceste metode garantează păstrarea intrărilor de căutare. Pentru soluții mai simple la nivelul clientului, tehnica sessionStorage este adecvată, în timp ce ViewState oferă o strategie ASP.NET mai cuprinzătoare. AJAX asigură că acțiunile utilizatorului nu interferează cu procesul de căutare, oferind un echilibru între actualizările pe partea de server și interactivitatea pe partea clientului. Fiecare soluție aderă la cele mai bune practici de performanță și utilizare, cu scopul de a minimiza frecarea utilizatorilor și de a păstra o experiență de interacțiune a datelor bazată pe grilă ASP.NET.

Menținerea criteriilor de căutare în grila ASP.NET după selectarea articolului

Abordarea 1: Utilizarea JavaScript cu stocarea sesiunii (partea client)

// 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());
  });
});

Păstrarea intrărilor de căutare în timpul postback-urilor în ASP.NET

Abordarea 2: Utilizarea ASP.NET ViewState (partea serverului)

' 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());
  });
});

Păstrarea criteriilor de căutare folosind AJAX pentru a preveni reîncărcarea completă a paginii

Abordarea 3: AJAX pentru actualizări parțiale ale paginilor

// 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();
      }
    });
  });
});

Îmbunătățirea persistenței căutării în grilă cu ASP.NET și JavaScript

Menținerea stării evidențiate a elementelor selectate din grilă după o reîmprospătare a paginii sau o postback este o parte esențială a menținerii intacte a experienței utilizatorului grilei ASP.NET. Utilizatorii anticipează că selecțiile lor vor rămâne pe loc în timp ce interacționează cu alte zone ale interfeței atunci când fac selecții multiple. Acest lucru este adesea dificil, deoarece anumite stări se pot reseta ca urmare a modificărilor grilei. Folosind JavaScript și EnableViewState Atributul pentru a stoca și reaplica starea de selecție după postback este o modalitate de a rezolva acest lucru.

Dezvoltatorii pot folosi stocarea pe partea clientului, cum ar fi LocalStorage sau sesiuneStorage, pentru a ține evidența obiectelor care au fost alese pe lângă stocarea criteriilor de căutare. Acest lucru este deosebit de util în situațiile în care utilizatorii aleg mai multe produse simultan. JavaScript poate fi folosit pentru a reaplica selecția la grilă după ce pagina se reîncărcă prin stocarea ID-urilor articolului selectat. Prin prevenirea pierderii acțiunilor utilizatorului, această tehnică îmbunătățește considerabil întreaga experiență a utilizatorului.

Viteză mai bună este garantată pentru grile mai complicate, în special pentru cele care gestionează seturi mari de date, prin utilizarea actualizărilor AJAX. Modificările parțiale pot fi făcute păstrând intacți parametrii de căutare și obiectele selectate, evitând necesitatea reîncărcării întregii grile. O experiență de rețea mai fluidă și interactivă este obținută prin combinare AJAX cu logica server-side, care permite site-ului web să se adapteze dinamic la activitățile utilizatorilor, fără a interfera cu fluxul de lucru al acestora.

Întrebări frecvente și răspunsurile acestora pentru păstrarea căutării și selecției în grilele ASP.NET

  1. Cum pot menține criteriile de căutare după o post-back?
  2. Criteriile de căutare pot fi păstrate între postback prin stocarea datelor de căutare sessionStorage sau ViewState.
  3. Când site-ul se reîmprospătează, îmi pot menține selecțiile în grilă?
  4. Da, utilizând JavaScript pentru a reaplica ID-urile de articol alese atunci când pagina se reîncarcă și salvându-le în localStorage sau sessionStorage.
  5. Când alegeți elemente de grilă, există o modalitate de a opri pagina de la reîncărcarea completă?
  6. Pentru actualizări parțiale ale paginii, utilizați AJAX pentru a evita reîncărcarea totală a rețelei și pentru a păstra parametrii de căutare.
  7. Pot fi păstrate opțiunile de sortare și paginare între postback?
  8. Da, angajați DataTables; alternativ, utilizați sessionStorage sau cel ViewState proprietate pentru a menține starea.
  9. Selectarea articolului în grilă și persistența căutării împreună?
  10. Da, puteți folosi JavaScript pentru a reaplica criteriile de căutare și elementele selectate la reîncărcarea paginii după ce le stocați sessionStorage.

Considerări finale despre căutare și selecție în grilele ASP.NET

Îmbunătățirea experienței utilizatorului în grilele ASP.NET necesită menținerea criteriilor de căutare odată ce elementele sunt selectate. Strategiile client și server garantează că utilizatorii își păstrează datele de căutare în timpul postback-ului. Acest lucru are ca rezultat o interfață mai simplă și mai ușor de utilizat.

Păstrarea intrării de căutare și a elementelor selectate, fie prin ViewState reţinere sau JavaScript stocarea, este scopul. Acest lucru ar trebui să minimizeze supărarea. Folosind aceste tehnici, puteți menține natura dinamică și ușor de utilizat a aplicațiilor dvs. bazate pe grilă, îmbunătățind în același timp gradul de utilizare general.

Referințe și material sursă pentru ASP.NET Grid Search Persistence
  1. Informații detaliate despre ASP.NET ViewState și modul în care păstrează datele între postback a fost obținut Documentația oficială Microsoft .
  2. The DataTables integrarea utilizată în funcționalitatea de căutare JavaScript a fost referită de la Documentația oficială DataTables .
  3. Utilizarea sesiuneStorage în JavaScript pentru stocarea datelor la nivelul clientului a fost explorat folosind exemple de la MDN Web Docs .
  4. Ghid pentru implementare AJAX pentru a preveni reîncărcările paginii în timp ce menținerea stării grilei a fost colectată din Tutorial AJAX W3Schools .