File tree 1 file changed +11
-3
lines changed
1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -397,18 +397,26 @@ class BootstrapTable extends Component {
397
397
398
398
handleSelectAllRow = e => {
399
399
const isSelected = e . currentTarget . checked ;
400
+ const keyField = this . store . getKeyField ( ) ;
401
+ const { selectRow : { onSelectAll, unselectable } } = this . props ;
400
402
let selectedRowKeys = [ ] ;
401
403
let result = true ;
402
- if ( this . props . selectRow . onSelectAll ) {
404
+ let rows = this . store . get ( ) ;
405
+
406
+ if ( isSelected && unselectable && unselectable . length > 0 ) {
407
+ rows = rows . filter ( r => unselectable . indexOf ( r [ keyField ] ) === - 1 ) ;
408
+ }
409
+
410
+ if ( onSelectAll ) {
403
411
result = this . props . selectRow . onSelectAll ( isSelected ,
404
- isSelected ? this . store . get ( ) : this . store . getRowByKey ( this . state . selectedRowKeys ) ) ;
412
+ isSelected ? rows : this . store . getRowByKey ( this . state . selectedRowKeys ) ) ;
405
413
}
406
414
407
415
if ( typeof result == 'undefined' || result !== false ) {
408
416
if ( isSelected ) {
409
417
selectedRowKeys = Array . isArray ( result ) ?
410
418
result :
411
- this . store . getAllRowkey ( ) ;
419
+ rows . map ( r => r [ keyField ] ) ;
412
420
}
413
421
414
422
this . store . setSelectedRowKey ( selectedRowKeys ) ;
You can’t perform that action at this time.
0 commit comments