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
- Hogyan tarthatom meg a keresési feltételeket a visszaküldés után?
- 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.
- Amikor a webhely frissül, megtarthatom a rácsban a kijelöléseimet?
- 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.
- A rácselemek kiválasztásakor van mód arra, hogy megakadályozzuk az oldal teljes újratöltését?
- 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.
- Megőrizhetők a rendezési és lapozási lehetőségek a visszaküldések között?
- Igen, alkalmazni DataTables; vagy használja sessionStorage vagy a ViewState ingatlan az állapot fenntartására.
- Elemkiválasztás a rácsban és a keresés tartóssága együtt?
- 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
- 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 .
- A DataTables a JavaScript keresési funkcióban használt integrációra hivatkoztak A DataTables hivatalos dokumentációja .
- 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 .
- Ú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 .