1.0.6 • Published 4 years ago

@tsyrulalexander/data-grid v1.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

Creating a grid to work with data

data:

    let lookupData = [
    	{value: 1, displayValue: "Man"},
    	{value: 2, displayValue: "Woman"}
    ];
    let data = [
    	{Name: "Sasha", Age: 24, Sex: lookupData[0], SexListValues: lookupData},
    	{Name: "Kate", Age: 23, Sex: lookupData[1], SexListValues: lookupData},
    	{Name: "Test person", Age: 3, Sex: lookupData[1], SexListValues: lookupData}
    ];

row class:

class MyRowViewModel extends RowViewModel {
	onPropertyChanged(propertyName) {
		super.onPropertyChanged(propertyName);
		if (propertyName === "Concat") {
			return;
		}
		this.setFullInfo();
	}
	setFullInfo() {
		let name = this.Name;
		let age = this.get("Age");
		let sex = this.get("Sex");
		let sexDisplayValue = sex && sex.displayValue;
		let fullInfoValue = name + " is " + sexDisplayValue + ", " + age + " years old";
		this.set("Concat", fullInfoValue);
	}
}

content builder class:

class MyGridContentBuilder extends GridContentBuilder {
	init() {
		super.init();
		this.initColumns();
	}
	initColumns() {
		this.addColumn(new GridColumn("Name", "Name", GridColumnType.string));
		this.addColumn(new GridColumn("Age", "Age", GridColumnType.integer));
		this.addColumn(new GridColumn("Sex", "Sex", GridColumnType.list));
		let concatColumn = new GridColumn("Concat", "FullInfo", GridColumnType.string);
		concatColumn.isReadOnly = true;
		this.addColumn(concatColumn);
	}
	loadData() {
		return new Promise((resolve) => {
			let pageData = Utilities.range(data, this.startRow, this.endRow);
			pageData.forEach(value => {
				let viewModel = this.addRowViewModel(value, MyRowViewModel);
				viewModel.setFullInfo();
			}, this);
			resolve();
		});
	}
}

grid:

let contentBuilder = new MyGridContentBuilder();
contentBuilder.rowCount = data.length;
contentBuilder.pageRowCount = 2;
contentBuilder.init();
let gridContainer = document.getElementById("ts-grid-container");
contentBuilder.render(gridContainer);
contentBuilder.loadGridData();

result:

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago