ColumnToggler demo for DataTable

pull/41/head
cagataycivici 2019-07-09 16:07:57 +03:00
parent 96362b6e97
commit ef1f1d8a1c
2 changed files with 19 additions and 7 deletions

View File

@ -10,12 +10,14 @@
</div> </div>
<div class="content-section implementation"> <div class="content-section implementation">
<h3 class="first">Basic</h3>
<DataTable :value="cars"> <DataTable :value="cars">
<Column field="vin" header="Vin"></Column> <template #header>
<Column field="year" header="Year"></Column> <div style="text-align:left">
<Column field="brand" header="Brand"></Column> <MultiSelect v-model="columns" :options="columnOptions" optionLabel="header" placeholder="Select Columns" style="width: 20em"/>
<Column field="color" header="Color"></Column> </div>
</template>
<Column field="vin" header="Vin" />
<Column v-for="col of columns" :field="col.field" :header="col.header" :key="col.field"></Column>
</DataTable> </DataTable>
</div> </div>
</div> </div>
@ -28,12 +30,22 @@ import DataTableSubMenu from './DataTableSubMenu';
export default { export default {
data() { data() {
return { return {
columns: null,
columnOptions: null,
cars: null cars: null
} }
}, },
carService: null, carService: null,
created() { created() {
this.carService = new CarService(); this.carService = new CarService();
this.columns = [
{field: 'year', header: 'Year'},
{field: 'brand', header: 'Brand'},
{field: 'color', header: 'Color'}
];
this.columnOptions = [...this.columns];
}, },
mounted() { mounted() {
this.carService.getCarsSmall().then(data => this.cars = data); this.carService.getCarsSmall().then(data => this.cars = data);

View File

@ -19,7 +19,7 @@
</DataTable> </DataTable>
<h3>Dynamic Columns</h3> <h3>Dynamic Columns</h3>
<DataTable :value="cars" :columns="columns"> <DataTable :value="cars">
<Column v-for="col of columns" :field="col.field" :header="col.header" :key="col.field"></Column> <Column v-for="col of columns" :field="col.field" :header="col.header" :key="col.field"></Column>
</DataTable> </DataTable>
@ -52,7 +52,7 @@ export default {
{field: 'year', header: 'Year'}, {field: 'year', header: 'Year'},
{field: 'brand', header: 'Brand'}, {field: 'brand', header: 'Brand'},
{field: 'color', header: 'Color'} {field: 'color', header: 'Color'}
] ];
}, },
mounted() { mounted() {
this.carService.getCarsSmall().then(data => this.cars = data); this.carService.getCarsSmall().then(data => this.cars = data);