이 샘플에서는 표 열의 name, dataField, formatter, cellType 및 convert 함수를 바인딩하는 방법을 보여 줍니다.
bind 메서드를 사용하여 레코드가 있는 필드에 표를 바인딩하고 표 열을 레코드의 필드에 바인딩합니다. 다른 데이터 원본을 설정하면 해당 표가 자동으로 해당 레코드에 바인딩됩니다. 예:
table.bind(tableColumns, 'sales', data);
복잡한 호출 문제를 해결하기 위한 bind API를 제공합니다. 아래 코드와 같이 이 API를 사용할 수 있습니다.
예 1:
var data = {
name: 'Jones', region: 'East',
sales: [
{orderDate: '1/6/2013', item: 'Pencil', units: 95, cost: 1.99, isMakeMoney: true},
{orderDate: '4/1/2013', item: 'Binder', units: 60, cost: 4.99, isMakeMoney: false},
{orderDate: '6/8/2013', item: 'Pen Set', units: 16, cost: 15.99, isMakeMoney: false}
]
};
var convert = function (item) {
return item['cost'] + '$';
}
var table = sheet.tables.add('tableSales', 0, 0, 5, 5);
var tableColumn1 = new spreadNS.Tables.TableColumn();
tableColumn1.name("Order Date");
tableColumn1.dataField("orderDate");
tableColumn1.formatter("d/M/yy");
var tableColumn2 = new spreadNS.Tables.TableColumn();
tableColumn2.name("Item");
tableColumn2.dataField("item");
var tableColumn3 = new spreadNS.Tables.TableColumn();
tableColumn3.name("Units");
tableColumn3.dataField("units");
var tableColumn4 = new spreadNS.Tables.TableColumn();
tableColumn4.name("Cost");
tableColumn4.dataField("cost");
tableColumn4.value(convert);
var tableColumn5 = new spreadNS.Tables.TableColumn();
tableColumn5.name("IsMakeMoney");
tableColumn5.dataField("isMakeMoney");
tableColumn5.cellType(new GC.Spread.Sheets.CellTypes.CheckBox());
table.autoGenerateColumns(false);
table.bind([tableColumn1, tableColumn2, tableColumn3, tableColumn4, tableColumn5], 'sales', data);
예 2:
var data = {
name: 'Jones', region: 'East',
sales: [
{orderDate: '1/6/2013', item: 'Pencil', units: 95, cost: 1.99, isMakeMoney: true},
{orderDate: '4/1/2013', item: 'Binder', units: 60, cost: 4.99, isMakeMoney: false},
{orderDate: '6/8/2013', item: 'Pen Set', units: 16, cost: 15.99, isMakeMoney: false}
]
};
var convert = function (item) {
return item['cost'] + '$';
}
var table = sheet.tables.add('tableSales', 0, 0, 5, 5);
var tableColumn1 = new spreadNS.Tables.TableColumn(1, "orderDate", "Order Date", "d/M/yy");
var tableColumn2 = new spreadNS.Tables.TableColumn(2, "item", "Item");
var tableColumn3 = new spreadNS.Tables.TableColumn(3, "units", "Units");
var tableColumn4 = new spreadNS.Tables.TableColumn(4, "cost", "Cost", null, null, convert);
var tableColumn5 = new spreadNS.Tables.TableColumn(5, "isMakeMoney", "IsMakeMoney", null, new GC.Spread.Sheets.CellTypes.CheckBox());
table.autoGenerateColumns(false);
table.bind([tableColumn1, tableColumn2, tableColumn3, tableColumn4, tableColumn5], 'sales', data);
데이터 원본을 이미 바인딩한 경우 데이터 원본 값을 변경하면 더티 표 행을 가져올 수 있습니다.
var dirtyRows = table.getDirtyRows();