Hogyan használhatom a JavaScriptet a keresési feltételek fenntartására egy ASP.NET rácsban, miután kiválasztottam az elemeket

Hogyan használhatom a JavaScriptet a keresési feltételek fenntartására egy ASP.NET rácsban, miután kiválasztottam az elemeket
Hogyan használhatom a JavaScriptet a keresési feltételek fenntartására egy ASP.NET rácsban, miután kiválasztottam az elemeket

A felhasználói élmény optimalizálása az ASP.NET Grid Search and Selection szolgáltatásban

Az ASP.NET-alkalmazások gyakori funkciója, hogy az ügyfelek lehetőséget kapjanak az objektumok rácsfelületen belüli keresésére és kiválasztására. A fejlesztők azonban gyakran találkoznak problémával: a rács frissül, és a keresési paraméterek elvesznek egy elem kiválasztásakor. Mivel minden alkalommal újra kell indítaniuk a keresést, amikor új elemet választanak, ez irritálhatja a felhasználókat.

A használhatóság javítása érdekében feltétlenül meg kell őrizni a keresési feltételeket a visszaküldést vagy a rácsfrissítést követően. Ez különösen akkor fontos, ha a fogyasztóknak ugyanazon szabványok alapján több lehetőséget kell választaniuk. A folyamat szükségtelenül megismétlődik, ha a keresett kifejezések elvesznek.

Szerencsére a JavaScript és az ASP.NET beépített funkcióinak felhasználásával biztosíthatjuk, hogy a keresési kulcsszavak a rácsból való elem kiválasztása után is folytatódjanak. A DataTables-t kiegészítő metódusok és az ASP.NET nézeti állapota segítségével gördülékenyebbé tehetjük a felhasználói élményt.

A következő útmutatóban megvizsgáljuk, hogyan használhatjuk ezt a JavaScriptet és a VB.Net-et egy ASP.NET projektben. Emellett egy valós forgatókönyvet is áttekintünk, amely megmutatja, hogyan tarthatja hatékonyan a keresési feltételeket a rács frissítése során.

Parancs Használati példa
sessionStorage.getItem() A keresési paraméterek ezzel a paranccsal lekérhetők a böngésző munkamenet-tárhelyéről. Ebben az esetben lekéri a korábban megadott keresési értéket, és gondoskodik arról, hogy a keresési mező ismét kitöltésre kerüljön az oldalfrissítés vagy a rácsfrissítés után.
sessionStorage.setItem() Elmenti az aktuális keresési lekérdezést a böngésző munkamenet-tárolójába. Ez megakadályozza, hogy a keresési paraméterek elveszjenek abban az esetben, ha a felhasználó kiválaszt egy elemet, vagy az ASP.NET rács visszaküldi.
ScriptManager.RegisterStartupScript() Regisztrál és futtat egy ASP.NET kliensoldali parancsfájlt a kiszolgálóról. Annak érdekében, hogy a keresési értéket a rács keresőmezőjében elmentse, itt a tárolt keresési feltételek alkalmazására használják az oldal betöltésekor vagy a visszaküldést követően.
DataTable().search() Frissítés vagy oldalbetöltés után a gyorsítótárazott keresési érték visszakerül a rácsra ezzel a DataTables módszerrel. Garantálja, hogy a rácsot a korábban bevitt keresési lekérdezés szerint szűrjük.
DataTable().draw() Alkalmazza a keresési feltételeket, és újrarajzolja a DataTable-t. Amikor az oldalt AJAX-szal vagy más technikával frissítik vagy frissítik, ez a parancs szükséges a keresési kifejezések újbóli alkalmazásához és a szűrt adatok megjelenítéséhez.
on('keyup') Eseménykezelőt ad a keresési beviteli mezőhöz, így minden billentyűleütés rögzítésre kerül. Ebben az esetben a munkamenet tárolójának az aktuális keresési bemenettel való frissítésével biztosítja, hogy a keresési érték akkor is megmaradjon, ha a rácsot frissítik vagy újratöltik.
__doPostBack() Ez az ASP.NET függvény JavaScript használatával küld vissza adatokat a szervernek a visszaküldés kezdeményezéséhez. Ha a rács egy elemét kiválasztja, a parancsfájl az aktuális keresési értéket kommunikálja a kiszolgálóval, garantálva a keresési állapot fenntartását a szerveroldali folyamatok során.
$.ajax() Aszinkron HTTP kérést küld a szervernek. Ebben az esetben segít megőrizni a keresési bevitelt, miközben a webhely bizonyos területeit (például a rácsot) frissíti az AJAX-szal azáltal, hogy a keresési feltételeket a teljes oldal újratöltése nélkül elküldi a szervernek.

Az ASP.NET Gridben a keresési feltételek megőrzésére szolgáló szkriptmegoldások megértése

A felajánlott szkriptek célja az ASP.NET alkalmazásokban előforduló gyakori probléma megoldása, ahol a felhasználók elveszítik a keresési paramétereiket, amikor egy rácsból választanak ki. Az első megközelítés a keresési bevitelt a kliens oldalon tárolja JavaScript használatával sessionStorage funkció. Ez a stratégia javítja a felhasználói élményt, amely biztosítja, hogy a keresőkifejezés a webhely újratöltése után is aktív maradjon. Az oldal újratöltésekor vagy egy elem kiválasztásakor a gyorsítótárazott keresési érték újra alkalmazható a rácsra a bemenet rögzítésével és helyi mentésével. Ennek a módszernek köszönhetően a felhasználónak nem kell folyamatosan ugyanazokat a feltételeket megadnia.

Egy másik módszer a szerveroldalt használja ViewState Az ASP.NET szolgáltatása. Ebben az esetben a keresési érték a ViewState objektumban marad, amely megőrzi az adatokat a visszaküldések között. A ViewState-ben tárolt érték visszakerül az oldalra, amikor a felhasználó interakcióba lép a ráccsal és kiválaszt egy elemet. Ez a módszer garantálja, hogy a keresési paraméterek a teljes munkamenetben elérhetőek legyenek, és könnyen beépüljenek a szerveroldali feldolgozásba. A keresési bemenet elvesztésének elkerülése érdekében a kiszolgáló futtathat egy parancsfájlt, hogy újra alkalmazza a keresést az ügyféloldali rácsra.

AJAX a harmadik megközelítésben használják a teljes oldalas újratöltés leállítására. Az oldal dinamikus frissítése egy elem kiválasztásakor történik, ami aszinkron kérést indít a szerver felé. Ez a rács frissítése közben érintetlenül tartja a keresési feltételeket – amelyek az AJAX kéréssel együtt vannak megadva. A frissítés befejezése után a JavaScript függvény újra alkalmazza a keresési értéket a rácsra. Ez a technika aszinkron módon frissíti az anyagot, miközben megőrzi a rács állapotát a felhasználói élmény maximalizálása érdekében.

Más módon ezek a módszerek mindegyike garantálja a keresési bemenet megőrzését. Az egyszerűbb kliensoldali megoldásokhoz a sessionStorage technika a megfelelő, míg a ViewState átfogóbb ASP.NET stratégiát kínál. Az AJAX biztosítja, hogy a felhasználói műveletek ne zavarják a keresési folyamatot azáltal, hogy egyensúlyt biztosít a szerveroldali frissítések és az ügyféloldali interaktivitás között. Minden megoldás betartja a teljesítményre és a használhatóságra vonatkozó legjobb gyakorlatokat, azzal a céllal, hogy minimalizálja a felhasználói súrlódást, és megőrizze a zökkenőmentes ASP.NET grid-alapú adatkezelési élményt.

Keresési kritériumok fenntartása az ASP.NET Gridben az elem kiválasztása után

1. megközelítés: JavaScript használata munkamenet-tárolással (ügyféloldali)

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

A keresési bevitel megőrzése a visszaküldések során az ASP.NET-ben

2. megközelítés: Az ASP.NET ViewState használata (szerveroldali)

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

Keresési feltételek megőrzése AJAX használatával a teljes oldal újratöltésének megakadályozása érdekében

3. megközelítés: AJAX részleges oldalfrissítésekhez

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

A rácskeresés tartósságának javítása ASP.NET és JavaScript segítségével

Az oldalfrissítést vagy visszaküldést követően a kijelölt elemek kiemelt állapotának megőrzése a rácson az ASP.NET rács felhasználói élményének megőrzésének kulcsfontosságú része. A felhasználók arra számítanak, hogy a kijelöléseik a helyükön maradnak, miközben többszörös kijelöléskor interakcióba lépnek a felület más területeivel. Ez gyakran nehéz, mivel bizonyos állapotok visszaállhatnak a rács módosításai következtében. A JavaScript és a EnableViewState Az attribútum használatával a visszaküldést követő kiválasztási állapot tárolása és újbóli alkalmazása az egyik módja ennek megoldására.

A fejlesztők használhatnak ügyféloldali tárhelyet, pl localStorage vagy sessionStorage, a kiválasztott objektumok nyomon követéséhez a keresési feltételek tárolása mellett. Ez különösen hasznos olyan helyzetekben, amikor a felhasználók egyszerre több terméket választanak. A JavaScript segítségével a kiválasztott elemazonosítók tárolásával az oldal újratöltése után újra alkalmazható a kijelölés a rácsra. Azáltal, hogy megakadályozza a felhasználói műveletek elvesztését, ez a technika nagymértékben javítja a teljes felhasználói élményt.

Az AJAX-frissítések használatával nagyobb sebesség garantált a bonyolultabb rácsoknál, különösen azoknál, amelyek nagy adatkészleteket kezelnek. Részleges módosítások végezhetők úgy, hogy a keresési paraméterek és a kiválasztott objektumok érintetlenek maradnak, így megspórolható a teljes rács újratöltése. A kombinálással gördülékenyebb és interaktívabb rácsélmény érhető el AJAX szerveroldali logikával, amely lehetővé teszi a webhely számára, hogy dinamikusan alkalmazkodjon a felhasználói tevékenységekhez anélkül, hogy megzavarná a munkafolyamatukat.

Gyakran ismételt kérdések és válaszaik az ASP.NET Grids-ben történő keresés és kiválasztás megőrzéséhez

  1. Hogyan tarthatom meg a keresési feltételeket a visszaküldés után?
  2. A keresési feltételek a visszaküldések között megőrizhetők a keresési bevitel tárolásával sessionStorage vagy ViewState.
  3. Amikor a webhely frissül, megtarthatom a rácsban a kijelöléseimet?
  4. Igen, a JavaScript használatával a kiválasztott elemazonosítók újbóli alkalmazása az oldal újratöltésekor, és elmentve localStorage vagy sessionStorage.
  5. A rácselemek kiválasztásakor van mód arra, hogy megakadályozzuk az oldal teljes újratöltését?
  6. Részleges oldalfrissítésekhez használja a AJAX hogy elkerülje a rács teljes újratöltését és megőrizze a keresési paramétereket.
  7. Megőrizhetők a rendezési és lapozási lehetőségek a visszaküldések között?
  8. Igen, alkalmazni DataTables; vagy használja sessionStorage vagy a ViewState ingatlan az állapot fenntartására.
  9. Elemkiválasztás a rácsban és a keresés tartóssága együtt?
  10. Igen, a JavaScript használatával újra alkalmazhatja a keresési feltételeket és a kiválasztott elemeket az oldal újratöltésekor, miután eltárolta őket sessionStorage.

Utolsó gondolatok az ASP.NET Grids-ben történő keresésről és kiválasztásról

Az ASP.NET rácsok felhasználói élményének javítása megköveteli, hogy a keresési feltételek a helyükön maradjanak az elemek kiválasztása után. Az ügyfél- és szerveroldali stratégiák garantálják, hogy a felhasználók megtartsák keresési bevitelüket a visszaküldés során. Ez zökkenőmentesebb és felhasználóbarátabb felületet eredményez.

A keresési bevitel és a kiválasztott elemek megőrzése, akár a ViewState megtartása ill JavaScript tárolás, ez a cél. Ennek minimalizálnia kell a bosszúságot. Ezen technikák használatával megőrizheti grid-alapú alkalmazásai dinamikus és felhasználóbarát jellegét, miközben javítja az általános használhatóságot.

Referenciák és forrásanyagok az ASP.NET Grid Search Perzisztenciához
  1. Részletes információk a ASP.NET ViewState és hogyan őrzi meg az adatokat a visszaküldések között A Microsoft hivatalos dokumentációja .
  2. A DataTables a JavaScript keresési funkcióban használt integrációra hivatkoztak A DataTables hivatalos dokumentációja .
  3. A használata sessionStorage A kliensoldali adatok tárolására szolgáló JavaScriptben a következő példák segítségével vizsgáltuk meg MDN Web Docs .
  4. Útmutató a megvalósításhoz AJAX az oldalak újratöltésének megakadályozására a rács állapotának fenntartása mellett a W3Schools AJAX oktatóanyag .