antd design table 줄 데이터 스타일 변경
예:
import styless from './component/record.css';--->css 스타일 도입.
css:
.csbsTypes{
font-family: , "Open Sans", " ";
font-weight: bold;
}
코드:
<Table
title={()=><div style={{textAlign: 'center',backgroundColor:'#170A29'}}></div>}
columns={R1columns}
dataSource={this.state.RateData}
pagination={false}
rowClassName={(record, index) => record.csbsType ===' '?'csbsTypes':''}--> rowClassName String , ,
/>
결 과 를 보 여 줍 니 다:csbsType=="범위 제한 없 음"의 이 줄 의 글꼴 은 굵 어 집 니 다."추가 지식:vue 는 ant design table 구성 요소 에 클릭 줄(선택 줄)스타일 과 얼룩말 무늬 스타일 을 사용자 정의 합 니 다.
시작 에 쓰기:
element-ui 의 table 구성 요 소 는 몇 가지 속성 이 있 지만 ant-design 에 table 구성 요 소 는 없습니다.
예 를 들 면:
stripe:얼룩말 무늬 table 인지 여부 입 니 다.
highlight-current-row:현재 줄 을 강조 할 지 여부 입 니 다.
물론 여러 가지 다른 속성 이 있 지만 본 고 는 먼저 이 두 가지 만 말한다.element-ui 에'ant-design'이 있 는 이상 ant-design 의 table 구성 요 소 를 사용 할 때 이 두 가지 기능 을 실현 하려 면 어떻게 해 야 합 니까?
정 답 은 무침.기왕 그것 이 없 는 이상 스스로 써 라,즉 두 번 포장 하 는 것 이다.
ok,먼저 이 속성의 기능 을 실현 합 니 다:highlight-current-row.
highlight-current-row
우선,prop 변 수 를 정의 합 니 다:highlight CurrentRow;다른 prop 변 수 를 currentRow 로 정의 합 니 다.
그리고 watch 에서 currentRow 의 변 화 를 감청 합 니 다.currentRow 가 변 할 때마다 이전 선택 한 줄 과 현재 선택 한 줄 의 스타일 을 보 여 줍 니 다.
currentRow (val) {
if (this.highlightCurrentRow) {
this.renderRowStyleAfterRowClick(val)
}
}
highlightCurrentRow 가 true 일 때 만 새로운 스타일 을 렌 더 링 해 야 합 니 다.renderRowStyleAfterRowClick:
// ,
renderRowStyleAfterRowClick (currentRow) {
const elements = document.getElementsByClassName('ant-table-row')
const rowSelectionElement = document.getElementsByClassName('row-selection')
// ,
if (rowSelectionElement.length > 0) {
rowSelectionElement[0].classList.remove('row-selection')
}
//
if (elements.length > 0) {
const rowList = [...elements]
rowList.find(t => t.dataset.rowKey === currentRow.id).classList.add('row-selection')
}
}
코드 는 사실 매우 간단 하 다.표 현재 페이지 의 모든 row 요소(table 구성 요 소 는 현재 클릭 줄 의 원생 class 를 제공 하지 않 음)와 현재 선택 한 row 요 소 를 가 져 옵 니 다.
현재 선택 한 줄 이 있다 면 이전에 추 가 된 css class'row-selection'을 제거 하 십시오.
그리고 현재 선택 한 줄 에 class'row-selection'을 추가 합 니 다.
그것 은 여기에 의문 이 있 습 니 다.제 가 어떻게 해야만 현재 의 줄 을 찾 을 수 있 습 니까?table 구성 요 소 는 현재 선택 한 줄 의 class 를 제공 하지 않 았 습 니 다.(적어도 나 는 찾 지 못 했 습 니 다)모든 것 은 t 를 통 해 class name'ant-table-row'를 통 해 모든 row 를 가 져 온 다음 에 그 중에서 현재 클릭 한 줄 을 찾 을 수 있 습 니 다.
이 럴 때 중요 한 속성 을 이용 해 야 합 니 다:rowKey.
ant-design table 구성 요소 의 api 파일 맨 뒤에 있 는 주의 사항 을 기억 하 십 니까?
rowKey 는 데이터 열 을 지정 하 는 데 사 용 됩 니 다.즉,모든 줄 의 유일한 표지 입 니 다.그러면 하기 쉽 습 니 다.
table 구성 요 소 를 참조 할 때 rowKey 를 표 데이터 원본 의 메 인 키 로 설정 하면 요소 의 dataset 에서 rowKey 를 가 져 와 현재 클릭 줄 을 찾 을 수 있 습 니 다.
rowList.find(t => t.dataset.rowKey === currentRow.id)
그리고 이 요소 에 클 라 스'row-selection'을 동적 으로 추가 합 니 다.
//
.ant-table-row {
&:hover > td {
background-color: @background-color !important;
color: #fff !important;
}
&.row-selection {
background-color: @background-color !important;
color: #fff !important;
}
}
hover 시 행 스타일 을 설정 하 는 것 은 클릭 시 행 스타일 과 같 습 니 다.줄 을 클릭 하지 않 고 이 줄 이 멈 출 때 다른 스타일 이 나타 나 도록 하기 위해 서 입 니 다.똑 같이 설정 하지 않 으 려 면 줄 클릭 시의 hover 스타일 과 줄 클릭 시의 스타일 을 따로 설정 할 수 있 습 니 다.
//
.ant-table-row {
&.row-selection {
background-color: @background-color !important;
color: #fff !important;
&:hover > td {
background-color: @background-color !important;
color: #fff !important;
}
}
}
이렇게 해서 우리 의 목적 은 달성 되 었 다.줄 을 클릭 할 때 currentRow 를 수정 합 니 다.table 구성 요소 내 부 는 watch 를 통 해 currentRow 의 변 화 를 감지 하면 스타일 을 바 꾸 는 방법 이 실 행 됩 니 다.
<s-table
ref="table"
size="default"
rowKey="id"
:columns="columns"
:verticalScroll="false"
:data="loadData"
:stripe="true"
:highlightCurrentRow="true"
:currentRow="selectedCustomer"
:customRow="rowClick">
...
rowClick: record => ({
//
on: {
click: () => {
this.handleCurrentRowChanged(record)
}
}
})
handleCustomerChanged (record) {
this.selectedCustomer = record
}
이렇게 하면 돼.stripe(얼룩말 무늬 줄)
줄 의 stripe 기능 을 실현 하 는 것 은 비교적 간단 하 다.
prop 변수 stripe 를 추가 합 니 다.구성 요소 의 update 함수 갈고리 에서 얼룩말 무늬 를 실현 하 는 방법 을 호출 하면 됩 니 다.
updated () {
if (this.stripe) {
this.renderStripe()
}
}
얼룩말 무늬 를 실현 하 는 방식 은 여러 가지 가 있 는데 여 기 는 전시 기간 중의 한 가지 만 보 여 준다.
//
renderStripe () {
const table = document.getElementsByClassName('ant-table-row')
if (table.length > 0) {
const rowList = [...table]
rowList.forEach(row => {
const index = rowList.indexOf(row)
if (index % 2 !== 0) {
row.style.backgroundColor = '#f7f7f7'
} else {
row.style.backgroundColor = '#ffffff'
}
})
}
},
table 의 모든 줄 을 가 져 온 다음 줄 간격 을 두 고 다른 줄 배경 색 을 설정 하면 목적 을 달성 할 수 있 습 니 다.다른 더 많은 방법 이 있 는 친구 들 은 보충 을 환영 합 니 다.
이상 의 antd design table 에서 한 줄 의 데 이 터 를 변경 하 는 스타일 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React, AntD 및 Tailwind: CSS 충돌 수정React, 및 (아마도 시장에서 구할 수 있는 대부분의 다른 UIKIT)을 사용하는 경우 일부 CSS 충돌이 발생할 수 있습니다. 예를 들어 AntDModal 구성 요소는 바닥글에 기본적으로 "확인"및 "취소"버튼...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.