Skip to content

Commit 9599450

Browse files
committed
Merge branch 'yakirg-v4.0.0-dev' into v4.0.0-dev
2 parents 7057758 + 19372a8 commit 9599450

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

examples/js/advance/edit-type-table.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ function addJobs(quantity) {
3232
jobs.push({
3333
id: id,
3434
name: 'Item name ' + id,
35-
type: 'B',
35+
type1: 'A',
36+
type2: 'B',
3637
active: i % 2 === 0 ? 'Y' : 'N',
3738
datetime: '200' + i + '-12-28T14:57:00'
3839
});
@@ -56,12 +57,21 @@ export default class EditTypeTable extends React.Component {
5657
return `TYPE_${cell}`;
5758
}
5859

60+
jobTypes(row) {
61+
if (row.id > 2) {
62+
return [ 'A', 'B' ];
63+
} else {
64+
return [ 'B', 'C', 'D', 'E' ];
65+
}
66+
}
67+
5968
render() {
6069
return (
6170
<BootstrapTable data={ jobs } cellEdit={ cellEditProp }>
6271
<TableHeaderColumn dataField='id' isKey={ true }>Job ID</TableHeaderColumn>
6372
<TableHeaderColumn dataField='name' editable={ { type: 'textarea' } }>Job Name</TableHeaderColumn>
64-
<TableHeaderColumn dataField='type' dataFormat={ this.formatType } editable={ { type: 'select', options: { values: jobTypes } } }>Job Type</TableHeaderColumn>
73+
<TableHeaderColumn dataField='type1' dataFormat={ this.formatType } editable={ { type: 'select', options: { values: jobTypes } } }>Job Type1</TableHeaderColumn>
74+
<TableHeaderColumn dataField='type2' editable={ { type: 'select', options: { values: this.jobTypes } } }>Job Type2</TableHeaderColumn>
6575
<TableHeaderColumn dataField='active' editable={ { type: 'checkbox', options: { values: 'Y:N' } } }>Active</TableHeaderColumn>
6676
<TableHeaderColumn dataField='datetime' editable={ { type: 'datetime' } }>Date Time</TableHeaderColumn>
6777
</BootstrapTable>

src/Editor.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import Utils from './util';
12
import React from 'react';
23

3-
const editor = function(editable, attr, format, editorClass, defaultValue, ignoreEditable) {
4+
const editor = function(editable, attr, format, editorClass, defaultValue, ignoreEditable, row) {
45
if (editable === true ||
56
(editable === false && ignoreEditable) ||
67
typeof editable === 'string') { // simple declare
@@ -35,7 +36,11 @@ const editor = function(editable, attr, format, editorClass, defaultValue, ignor
3536

3637
if (editable.type === 'select') {// process select input
3738
let options = [];
38-
const { values, textKey, valueKey } = editable.options;
39+
let { values } = editable.options;
40+
const { textKey, valueKey } = editable.options;
41+
if (Utils.isFunction(values)) {
42+
values = values(row);
43+
}
3944
if (Array.isArray(values)) {// only can use arrray data for options
4045
let text;
4146
let value;
@@ -50,7 +55,8 @@ const editor = function(editable, attr, format, editorClass, defaultValue, ignor
5055
return (
5156
<option key={ 'option' + i } value={ value }>{ text }</option>
5257
);
53-
});
58+
}
59+
);
5460
}
5561
return (
5662
<select { ...attr } defaultValue={ defaultValue }>

src/TableEditColumn.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ class TableEditColumn extends Component {
192192
};
193193
cellEditor = customEditor.getElement(this.handleCustomUpdate, customEditorProps);
194194
} else {
195-
cellEditor = editor(editable, attr, format, editorClass, this.valueShortCircuit(fieldValue));
195+
cellEditor = editor(editable, attr, format, editorClass, this.valueShortCircuit(fieldValue),
196+
null, row);
196197
}
197198

198199
if (isFocus) {

0 commit comments

Comments
 (0)