Articles in this section
Category / Section

Two Way Databinding Property

2 mins read

Two way Databinding means that any data-related changes affecting the model are immediately propagated to the matching view(s), and vice-versa.

Angular Syncfusion Components supports Two way Databinding property which is bound to the controls with in the brackets ‘[()]’. In our Grid Component dataSource Property supports two way databinding property.

Refer to the below code snippet to declare the dataSource property through two way databinding in view.

 [app.component.html]

 

<ej-grid [allowPaging]="true" [allowSorting]="true" [(dataSource)]="gridData">

    <e-columns>

        <e-column field="OrderID" headerText="Order ID" width="75" textAlign="right"></e-column>

        <e-column field="CustomerID" headerText="Customer ID" width="80"></e-column>

        <e-column field="EmployeeID" headerText="Employee ID" width="75" textAlign="right"></e-column>

        <e-column field="Freight" width="75" format="{0:C}" textAlign="right"></e-column>

        <e-column field="OrderDate" headerText="Order Date" width="80" format="{0:MM/dd/yyyy}" textAlign="right"></e-column>

    </e-columns>

</ej-grid>

 

 

Refer to the below code snippet to pass the data to dataSource property in model.

[app.component.ts]

import { Component } from '@angular/core';

 

@Component({

    selector: 'ej-app',

    templateUrl: './app.component.html',

})

export class AppComponent {

    public gridData: any;

    constructor() {

        this.gridData = [{

            OrderID: 10248, CustomerID: 'VINET', EmployeeID: 5,

            OrderDate: new Date(8364186e5), Freight: 32.38

        },

        {

            OrderID: 10249, CustomerID: 'TOMSP', EmployeeID: 6,

            OrderDate: new Date(836505e6), Freight: 11.61

        },

        {

            OrderID: 10250, CustomerID: 'HANAR', EmployeeID: 4,

            OrderDate: new Date(8367642e5), Freight: 65.83

        },

        {

            OrderID: 10251, CustomerID: 'VICTE', EmployeeID: 3,

            OrderDate: new Date(8367642e5), Freight: 41.34

        }];

    }

}

 

 

Now the dataSource is appended in view and Model. We can change the data into view and model through any events in the Controls.

Here we are going to bind a data dynamically through a button click event in both view and model.

Refer to the below code snippet

[app.component.html]

<ej-grid [allowPaging]="true" [allowSorting]="true" [(dataSource)]="gridData">

    <e-columns>

        <e-column field="OrderID" headerText="Order ID" width="75" textAlign="right"></e-column>

        <e-column field="CustomerID" headerText="Customer ID" width="80"></e-column>

        <e-column field="EmployeeID" headerText="Employee ID" width="75" textAlign="right"></e-column>

        <e-column field="Freight" width="75" format="{0:C}" textAlign="right"></e-column>

        <e-column field="OrderDate" headerText="Order Date" width="80" format="{0:MM/dd/yyyy}" textAlign="right"></e-column>

    </e-columns>

</ej-grid>

<button type="button" id="button" ej-button text="click button to append dataSource" (ejclick)="dataappend($event)"></button>

 

 

Refer to the below code snippet to append the data dynamically in a click event.

[app.component.ts]

import { Component } from '@angular/core';

 

@Component({

    selector: 'ej-app',

    templateUrl: './app.component.html',

})

export class AppComponent {

    public gridData: any;

    constructor() {

        this.gridData = [{

            OrderID: 10248, CustomerID: 'VINET', EmployeeID: 5,

            OrderDate: new Date(8364186e5), Freight: 32.38

        },

        {

            OrderID: 10249, CustomerID: 'TOMSP', EmployeeID: 6,

            OrderDate: new Date(836505e6), Freight: 11.61

        },

        {

            OrderID: 10250, CustomerID: 'HANAR', EmployeeID: 4,

            OrderDate: new Date(8367642e5), Freight: 65.83

        },

        {

            OrderID: 10251, CustomerID: 'VICTE', EmployeeID: 3,

            OrderDate: new Date(8367642e5), Freight: 41.34

        }];

    }

    dataappend(event){

        this.gridData.push({ OrderID: 10252, CustomerID: 'SUPRD', EmployeeID: 4,

        OrderDate: new Date(8368506e5), Freight: 51.3});

    }

}

 

 

 

Refer to the below sample link with above code snippets.

Sample

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments
Please sign in to leave a comment
Access denied
Access denied