Wyszukiwarka z filtrami w JavaScript

0

Cześć. Mam za zadanie na praktykach napisać wyszukiwarkę z filtrami (rosnąco id, malejąco id, alfabetycznie np. imie). Tabelke już zrobiłem, która tak się prezentuje w ASP.NET dam pod całym tekstem. Jak napisać w javascript wyszukiwarkę, która po wpisaniu w TextBoxie "Adrian" albo po wpisaniu jego kodu pocztowy wyświetli mi powiedzmy tylko Adriana Kowalskiego?
I jak napisać skrypt z tymi filtrami, że powiedzmy tabelka ustawiałaby się alfabetycznie od nazwiska.

CAŁOŚĆ NA RAZIE WYGLĄDA TAK:

cos

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Szukaj" /> 
            <br />
            <br />
            <asp:GridView ID="Tabeleczka" runat="server"></asp:GridView>
        </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("ID", typeof(int)));

            dt.Columns.Add(new DataColumn("Imie", typeof(string)));

            dt.Columns.Add(new DataColumn("Nazwisko", typeof(string)));

            dt.Columns.Add(new DataColumn("Adres", typeof(string)));

            dt.Columns.Add(new DataColumn("Kod pocztowy", typeof(string)));

            DataRow dr = dt.NewRow();

            dr["ID"] = 1;

            dr["Imie"] = "Adrian";

            dr["Nazwisko"] = "Kowalski";

            dr["Adres"] = "Zdrowa 1";

            dr["Kod pocztowy"] = "41-222";

            dt.Rows.Add(dr);

            DataRow dwr = dt.NewRow();

            dwr["ID"] = 2;

            dwr["Imie"] = "Antek";

            dwr["Nazwisko"] = "Nowak";

            dwr["Adres"] = "Kolorowa 22";

            dwr["Kod pocztowy"] = "32-555";

            dt.Rows.Add(dwr);

            Tabeleczka.DataSource = dt;

            Tabeleczka.DataBind();

        }

    }
}
0

Czy wyszukiwarka ma dziać server-side, czy client-side? Server-side oznacza, że podczas wpisywania odpytujesz serwer o już odfiltrowane dane. Client-side oznacza, że manipulujesz widocznością elementów tabelki bez pytania serwera o nowe dane.

JSFiddle

const form = document.querySelector('#search');
const table = document.querySelector('#Tabeleczka');

form.addEventListener('submit', e => {
  e.preventDefault();

  const form = e.target;
  const query = form.query.value;

  table.querySelectorAll('tbody tr')
    .forEach(row => row.classList.toggle('hide', !row.innerText.includes(query)));
});

1 użytkowników online, w tym zalogowanych: 0, gości: 1