Import
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';NuiGrid
ตารางข้อมูลที่สร้างบน table แบบเนทีฟ
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
rowsProp | readonly T[] | ข้อมูล การแก้ไขจะแทนที่แถวนั้นและเรียก onRowsChange ส่วน rows ชุดถัดไปที่คุณส่งเข้ามาจะแทนที่การแก้ไขเหล่านั้น | |
onRowsChangeCallback | (rows: readonly T[]) => void | ถูกเรียกพร้อมแถวทั้งหมดหลังการแก้ไขแต่ละครั้งที่ยืนยันแล้ว | |
columnsProp | NuiGridColumn<T>[] | คอลัมน์ต่าง ๆ ในรูปออบเจกต์ NuiGridColumn | |
rowIdProp | (row: T) => unknown | row.id ?? row | คีย์ของแถว สำหรับการเลือกและการติดตาม |
labelProp | string | ชื่อที่เข้าถึงได้ของตาราง | |
selectionProp | 'none' | 'single' | 'multiple' | 'none' | เลือกแถวได้หรือไม่ และได้กี่แถว |
selecteddefaultSelectedonSelectedChangeสถานะ | unknown[] | [] | คีย์ของแถวที่เลือก |
sortdefaultSortonSortChangeสถานะ | NuiGridSort[] | [] | การเรียงลำดับในรูปออบเจกต์ { column, direction } โดยรายการแรกจะเรียงก่อน |
filtersdefaultFiltersonFiltersChangeสถานะ | Record<string, NuiGridFilter> | {} | ตัวกรองต่อ id ของคอลัมน์ ประกอบด้วยตัวดำเนินการและค่า |
searchdefaultSearchonSearchChangeสถานะ | string | '' | คำที่ต้องปรากฏครบทุกคำในแถว |
pageSizedefaultPageSizeonPageSizeChangeสถานะ | number | 0 | จำนวนแถวต่อหน้า หรือ 0 เพื่อแสดงเป็นรายการเดียวที่เลื่อนได้ |
pagedefaultPageonPageChangeสถานะ | number | 0 | หน้าที่แสดง เริ่มนับจาก 0 |
pageSizesProp | number[] | [10, 25, 50, 100] | ตัวเลือกในตัวแบ่งหน้า |
virtualProp | boolean | 'auto' | 'auto' | เรนเดอร์เฉพาะแถวที่มองเห็น: ทุกครั้ง ไม่เลย หรือ auto เมื่อเกิน 100 แถวและไม่แบ่งหน้า |
heightProp | string | ความยาว CSS ที่จำกัดขนาดของตาราง โดยเนื้อหาจะเลื่อนอยู่ภายใน | |
columnStatedefaultColumnStateonColumnStateChangeสถานะ | NuiGridColumnState[] | [] | ความกว้าง ลำดับ การตรึง และการแสดงผลของแต่ละคอลัมน์ สำหรับบันทึกและกู้คืน |
modeProp | 'client' | 'server' | 'client' | server แสดงแถวตามที่ได้รับ และปล่อยให้คุณจัดการการเรียงลำดับ การกรอง และการแบ่งหน้าเอง |
totalProp | number | จำนวนแถวบนเซิร์ฟเวอร์ | |
loadingProp | boolean | false | แสดงแถบความคืบหน้า และแสดงแถวตัวยึดตำแหน่งระหว่างที่ยังไม่มีแถว |
localeProp | string | 'en-US' | ใช้จัดรูปแบบตัวเลขและวันที่ และอ่านตัวเลขที่พิมพ์ |
labelsProp | Partial<NuiGridLabels> | ข้อความทุกส่วนที่ตารางแสดงหรือประกาศ สำหรับการแปล | |
cornersProp | NuiCorners | รูปทรงของมุม: round squircle bevel scoop notch หรือ square | |
radiusProp | NuiRadius | ขนาดของมุม: none small medium large หรือ full | |
densityProp | NuiDensity | พื้นที่ที่ใช้: compact regular หรือ roomy | |
groupByProp | string[] | [] | คอลัมน์ที่ใช้จัดกลุ่มแถว เริ่มจากชั้นนอกสุด |
collapseddefaultCollapsedonCollapsedChangeสถานะ | string[] | [] | คีย์ของกลุ่มที่ยุบอยู่ โดยกลุ่มจะเริ่มต้นแบบขยาย |
getChildrenProp | (row: T) => T[] | undefined | แถวลูกของแถว ตารางจะแสดงเป็นข้อมูลแบบต้นไม้ | |
expandeddefaultExpandedonExpandedChangeสถานะ | unknown[] | [] | คีย์ของแถวที่ขยายอยู่ในข้อมูลแบบต้นไม้ โดยแถวจะเริ่มต้นแบบยุบ |
detailsdefaultDetailsonDetailsChangeสถานะ | unknown[] | [] | คีย์ของแถวที่เปิดรายละเอียดอยู่ |
totals, flashProp | boolean | false | แถวค่าสรุปจากทุกแถวที่ผ่านการกรอง และเซลล์ที่กะพริบเมื่อข้อความเปลี่ยน ซึ่งใช้ได้ในแถวที่มี rowId คงที่ |
layoutProp | 'table' | 'list' | 'auto' | 'table' | list แสดงแถวเป็นการ์ด และ auto แสดงเช่นนั้นเฉพาะบนหน้าจอแคบ |
toolbarProp | boolean | 'auto' | 'auto' | แถบที่ใช้เรียงลำดับ กรอง และเลือกทุกแถว: ทุกครั้ง ไม่เลย หรือ auto เมื่อแสดงเป็นการ์ด |
renderEmptyRender prop | (filtered: boolean) => ReactNode | สิ่งที่แสดงเมื่อไม่มีแถว โดยจะได้รับแจ้งว่าตัวกรองซ่อนแถวไว้หรือไม่ | |
renderDetailRender prop | (row: T) => ReactNode | รายละเอียดของแถว ซึ่งแสดงอยู่ใต้แถวเมื่อเปิด ตารางจะเพิ่มคอลัมน์ของปุ่มสลับให้ | |
onRowActivateCallback | (row: T) => void | ถูกเรียกพร้อมแถวที่ถูกเปิดด้วย Enter หรือการดับเบิลคลิก | |
onCellEditCallback | (edit: NuiGridEdit<T>) => void | ถูกเรียกพร้อมการแก้ไขแต่ละครั้งที่ยืนยันแล้ว | |
onQueryChangeCallback | (query: NuiGridQuery) => void | ถูกเรียกพร้อมการเรียงลำดับ ตัวกรอง คำค้นหา และหน้า ทุกครั้งที่มีการเปลี่ยนแปลง และอีกครั้งตอนเริ่มต้น | |
refProp | Ref<NuiGridHandle> | สิ่งที่เข้าถึงได้ผ่าน ref ของตาราง ได้แก่การส่งออก การสั่งพิมพ์ และโฟกัส | |
exportXlsx, printเมธอด | (options?) => Blob, () => void | แถวที่กรองและเรียงลำดับแล้วในรูปสเปรดชีต และการสั่งพิมพ์ทุกแถว | |
exportCsvเมธอด | (options?) => string | แถวที่กรองและเรียงลำดับแล้ว เฉพาะคอลัมน์ที่มองเห็น ในรูปแบบ CSV | |
expandAllเมธอด | (open?: boolean) => void | ขยายทุกกลุ่มและทุกแถวที่มีแถวลูก หรือยุบทั้งหมด | |
focusCellเมธอด | (row: number, col: number) => void | โฟกัสที่เซลล์ แถว -1 คือหัวตาราง | |
clearFiltersเมธอด | () => void | ล้างตัวกรองทั้งหมดและคำค้นหา | |
fitเมธอด | (id: string) => void | ปรับความกว้างคอลัมน์ให้พอดีกับเซลล์ที่กว้างที่สุดในบรรดาเซลล์ที่เรนเดอร์แล้ว |
สถานะทำงานเหมือน input ของ React เอง คือส่งค่าเข้าไปแล้วอัปเดตจาก callback on…Change ของค่านั้น หรือส่งค่า default… แล้วปล่อยให้คอมโพเนนต์เก็บค่าไว้เอง
Prop สำหรับการปรับแต่งที่ไม่ได้กำหนดค่าไว้ จะใช้ค่าตาม attribute data-nui-* ที่อยู่ใกล้ที่สุด ดูคู่มือการปรับแต่ง
NuiGridColumn
คอลัมน์หนึ่งคอลัมน์ รับพร็อพเพอร์ตีทุกตัวของคอลัมน์ Angular (ต้องระบุเพียง id และ header) และสองตัวนี้ที่ใช้วาดคอลัมน์
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
renderCellRender prop | ({ row, value, text, column }) => ReactNode | วาดเซลล์ของคอลัมน์เอง จากแถว ค่า และข้อความของเซลล์ | |
renderHeaderRender prop | (column) => ReactNode | วาดหัวคอลัมน์เอง โดย header ยังคงเป็นชื่อของคอลัมน์ |