Getting started in EJ2 TypeScript ListView control
7 May 20258 minutes to read
This section briefly explains how to create ListView control and configure its available functionalities in TypeScript using the Essential® JS 2 quickstart seed repository.
This application is integrated with the
webpack.config.js
configuration and uses the latest version of the webpack-cli. It requires nodev14.15.0
or higher. For more information about webpack and its features, refer to the webpack documentation.
Dependencies
Install the below required dependent packages to render the ListView control.
|-- @syncfusion/ej2-lists
|-- @syncfusion/ej2-base
|-- @syncfusion/ej2-data
Set up development environment
Open the command prompt from the required directory, and run the following command to clone the Syncfusion® JavaScript (Essential® JS 2) quickstart project from GitHub.
git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart
After cloning the application in the ej2-quickstart
folder, run the following command line to navigate to the ej2-quickstart
folder.
cd ej2-quickstart
Add Syncfusion® JavaScript packages
Syncfusion® JavaScript (Essential® JS 2) packages are available on the npmjs.com public registry. You can install all Syncfusion® JavaScript (Essential® JS 2) controls in a single @syncfusion/ej2 package or individual packages for each control.
The quickstart application is preconfigured with the dependent @syncfusion/ej2 package in the ~/package.json
file. Use the following command to install the dependent npm packages from the command prompt.
npm install
Import the Syncfusion® CSS styles
To render the ListView control, need to import lists and its dependent control’s styles as given below in the ~/src/styles/styles.css
file, as shown below:
@import "../../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-lists/styles/material.css";
Add ListView to the project
Add the HTML <div>
element for ListView control to your index.html
.
[src/index.html]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 ListView </title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="description" content="Essential JS 2" />
<meta name="author" content="Syncfusion" />
<link rel="shortcut icon" href="resources/favicon.ico" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<div id="container">
<!--element which is going to render-->
<div id='element'></div>
</div>
</body>
</html>
Import the ListView control into your app.ts
and append it to the #element
.
[src/app/app.ts]
import { ListView } from '@syncfusion/ej2-lists';
//Initialize ListView control
let listviewInstance: ListView = new ListView();
//Render initialized ListView
listviewInstance.appendTo("#element");
Bind data source
Populate the data in ListView by using the dataSource property. Here, an array of JSON values are passed to the ListView control.
[src/app/app.ts]
import { ListView } from '@syncfusion/ej2-lists';
//define the array of JSON
let arts: { [key: string]: string }[] = [
{ text: 'Artwork', id: '01' },
{ text: 'Abstract', id: '02' },
{ text: 'Modern Painting', id: '03' },
{ text: 'Ceramics', id: '04' },
{ text: 'Animation Art', id: '05' },
{ text: 'Oil Painting', id: '06' }];
//Initialize ListView control
let listviewInstance: ListView = new ListView({
//set the data to datasource property
dataSource: arts
});
//Render initialized ListView
listviewInstance.appendTo("#element");
Run the application
Use the npm run start
command to run the application in the browser.
npm run start
The following example shows a basic ListView.
import { ListView } from '@syncfusion/ej2-lists';
//define the array of JSON
let arts: { [key: string]: string }[] = [
{ text: 'Artwork', id: '01' },
{ text: 'Abstract', id: '02' },
{ text: 'Modern Painting', id: '03' },
{ text: 'Ceramics', id: '04' },
{ text: 'Animation Art', id: '05' },
{ text: 'Oil Painting', id: '06' }];
//Initialize ListView control
let listviewInstance: ListView = new ListView({
//set the data to datasource property
dataSource: arts
});
//Render initialized ListView
listviewInstance.appendTo("#element");
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 for ListView </title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Essential JS 2 for ListView UI Control" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-lists/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id='loader'>Loading....</div>
<div id='container'>
<div id='element'></div>
</div>
<style>
#element {
display: block;
max-width: 350px;
margin: auto;
border: 1px solid #dddddd;
border-radius: 3px;
}
</style>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
height: 40px;
width: 30%;
position: absolute;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
top: 45%;
left: 45%;
}