Data Table
یک جدول معمولی را در <div ui="data-table"> بگذارید تا مرتبسازی، جستوجوی فارسیمحور و صفحهبندی بگیرد. ردیفها در DOM میمانند، پس چاپ و حالت بدون JavaScript سالم است. ماژول table لازم است.
| محصول | دسته | قیمت | موجودی |
|---|---|---|---|
| چای سبز ممتاز | نوشیدنی | ۱۸۵٬۰۰۰ تومان | ۴۲ |
| زعفران سرگل | ادویه | ۱٬۲۵۰٬۰۰۰ تومان | ۱۸ |
| عسل کوهستان | شیرینی | ۶۴۰٬۰۰۰ تومان | ۰ |
| پسته اکبری | خشکبار | ۸۹۰٬۰۰۰ تومان | ۲۷ |
| سنگ نمک ریز | ادویه | ۹۵٬۰۰۰ تومان | ۱۲۰ |
| مربای به | شیرینی | ۲۱۰٬۰۰۰ تومان | ۹ |
| بادام زمینی | خشکبار | ۳۱۰٬۰۰۰ تومان | ۶۴ |
| دمنوش آرامش | نوشیدنی | ۱۶۵٬۰۰۰ تومان | ۳۳ |
| گلاب کاشان | نوشیدنی | ۱۲۰٬۰۰۰ تومان | ۵۱ |
| کشمش پلویی | خشکبار | ۲۶۰٬۰۰۰ تومان | ۱۵ |
| رب انار | شیرینی | ۱۷۵٬۰۰۰ تومان | ۲۲ |
| سماق درجه یک | ادویه | ۱۴۰٬۰۰۰ تومان | ۳۸ |
<div ui="data-table" data-page-size="5" data-empty-text="محصولی با این نام پیدا نشد.">
<label ui="field"><span>جستوجوی محصول</span><input type="search" data-table-search placeholder="مثلاً زعفران یا 12"></label>
<div ui="table-wrap">
<table ui="table">
<caption>موجودی انبار</caption>
<thead><tr><th data-sort="text">محصول</th><th data-sort="text">دسته</th><th data-sort="number">قیمت</th><th data-sort="number">موجودی</th></tr></thead>
<tbody>
<tr><td>چای سبز ممتاز</td><td>نوشیدنی</td><td data-value="185000">۱۸۵٬۰۰۰ تومان</td><td data-value="42">۴۲</td></tr><tr><td>زعفران سرگل</td><td>ادویه</td><td data-value="1250000">۱٬۲۵۰٬۰۰۰ تومان</td><td data-value="18">۱۸</td></tr><tr><td>عسل کوهستان</td><td>شیرینی</td><td data-value="640000">۶۴۰٬۰۰۰ تومان</td><td data-value="0">۰</td></tr><tr><td>پسته اکبری</td><td>خشکبار</td><td data-value="890000">۸۹۰٬۰۰۰ تومان</td><td data-value="27">۲۷</td></tr><tr><td>سنگ نمک ریز</td><td>ادویه</td><td data-value="95000">۹۵٬۰۰۰ تومان</td><td data-value="120">۱۲۰</td></tr><tr><td>مربای به</td><td>شیرینی</td><td data-value="210000">۲۱۰٬۰۰۰ تومان</td><td data-value="9">۹</td></tr><tr><td>بادام زمینی</td><td>خشکبار</td><td data-value="310000">۳۱۰٬۰۰۰ تومان</td><td data-value="64">۶۴</td></tr><tr><td>دمنوش آرامش</td><td>نوشیدنی</td><td data-value="165000">۱۶۵٬۰۰۰ تومان</td><td data-value="33">۳۳</td></tr><tr><td>گلاب کاشان</td><td>نوشیدنی</td><td data-value="120000">۱۲۰٬۰۰۰ تومان</td><td data-value="51">۵۱</td></tr><tr><td>کشمش پلویی</td><td>خشکبار</td><td data-value="260000">۲۶۰٬۰۰۰ تومان</td><td data-value="15">۱۵</td></tr><tr><td>رب انار</td><td>شیرینی</td><td data-value="175000">۱۷۵٬۰۰۰ تومان</td><td data-value="22">۲۲</td></tr><tr><td>سماق درجه یک</td><td>ادویه</td><td data-value="140000">۱۴۰٬۰۰۰ تومان</td><td data-value="38">۳۸</td></tr>
</tbody>
</table>
</div>
</div>
سرستونهای data-sort="text|number" دکمه واقعی میشوند و aria-sort میگیرند؛ هر کلیک: صعودی ← نزولی ← بدون ترتیب. مرتبسازی عددی ارقام فارسی، جداکننده هزارگان و واحد را میفهمد؛ اگر مقدار خام دارید در data-value بگذارید. جستوجو «ي/ی»، «ك/ک»، ارقام و نیمفاصله را یکی میکند. رویدادها: bana:table-sort، bana:table-filter و bana:table-page.
| صفت | کار |
|---|---|
| data-page-size="10" | تعداد ردیف در هر صفحه (بدون آن همه ردیفها دیده میشوند). |
| data-table-search | روی یک <input> داخل wrapper برای فیلتر زنده. |
| data-empty-text | متن حالت «نتیجهای نیست». |
| data-value | مقدار خام یک سلول برای مرتبسازی و جستوجو. |
این یک جدول سمت کلاینت است.برای هزاران ردیف، مرتبسازی و صفحهبندی را در سرور انجام دهید و فقط از رویدادها و استایل استفاده کنید.