Articles in this section
Category / Section

How to edit a column using dropdown component in AngularJS editable data grid?

2 mins read

By default, AngularJS data grid renders textbox component for all editable columns. Also, it offers the following in-built editor components to edit a column value based on the corresponding column data type. In this article, we are going to render a dropdownlist component while editing a Ship Country column (string column) for this we need to set columns.editType property as 'dropdownedit' for the corresponding column.

 

  • NumericTextBox Component for integers, double and decimal data types.
  • TextBox Component for string data type.
  • DropdownList Component to show all unique values related to that field.
  • CheckBox Component for Boolean data type.
  • DatePicker Component for date data type.
  • DateTimePicker Component for date time data type.

This article explains how to render dropdownlist component for string column instead of default textbox in grid edit mode.

 

HTML

<ejs-grid [dataSource]='data' [editSettings]='editSettings' [toolbar]='toolbar'>
    <e-columns>
        <e-column field='OrderID' headerText='Order ID' width='120' textAlign='Right' isPrimaryKey='true' [validationRules]='orderidrules'></e-column>
        <e-column field='CustomerName' headerText='Customer Name' width='120' [validationRules]='customeridrules'></e-column>
        <e-column field='Freight' headerText='Freight' width='120' format='C2' textAlign='Right' editType='numericedit' [validationRules]='freightrules'></e-column>
        <e-column field='OrderDate' headerText='Order Date' width='130' editType='datepickeredit' format='yMd' textAlign='Right'></e-column>
        <e-column field='ShipCountry' headerText='Ship Country' width='150' editType='dropdownedit' [edit]='editparams'></e-column>
    <e-column field='ShipAddress' headerText='Ship Address' width='200'></e-column>
    </e-columns>
</ejs-grid>
 

 

Component.ts

import { Component, OnInit } from '@angular/core';
import { orderDetails } from './data';
import { EditService, ToolbarService} from '@syncfusion/ej2-angular-grids';
 
@Component({
    selector: 'app-root',
    templateUrl: 'app.component.html',
    providers: [ToolbarService, EditService]
})
export class AppComponent {
    public data: Object[];
    public editSettings: Object;
    public toolbar: string[];
    public orderidrules: Object;
    public customeridrules: Object;
    public freightrules: Object;
    public pageSettings: Object;
    public editparams: Object;
 
    public ngOnInit(): void {
        this.data = orderDetails;
        this.editSettings = { allowEditing: true, allowAdding: true, allowDeleting: true, mode:"Normal"};
        this.toolbar = ['Add', 'Edit', 'Delete'];
        this.orderidrules = { required: true, number: true };
        this.customeridrules = { required: true };
        this.freightrules =  { required: true };
        this.editparams = { params: { popupHeight: '150px' }};
    }
}
 

 

Console Output

data grid inline edit mode

 

Sample : https://stackblitz.com/edit/syncfusion-angular-editable-grid?file=main.ts

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