Search on filtering in EJ2 JavaScript Drop down list control
2 May 20233 minutes to read
The following example demonstrates about how to set limit the search result on filtering.
var data=new ej.data.DataManager({
url: 'https://services.odata.org/V4/Northwind/Northwind.svc/Customers',
adaptor: new ej.data.ODataV4Adaptor(),
crossDomain: true
});
var customers = new ej.dropdowns.DropDownList({
//bind the data manager instance to dataSource property
dataSource : data,
//bind the Query instance to query property
query: new ej.data.Query().select(['ContactName']).take(6),
//map the appropriate columns to fields property
fields: { value: 'ContactName'},
//set the placeholder to DropDownList input
placeholder: "Select a name",
// sort the resulted items
sortOrder: 'Ascending',
// set true to allowFiltering for enable filtering supports
allowFiltering: true,
// bind the filtering event handler
filtering: (e) => {
// set limit as 4 to search result
let query = new ej.data.Query().select(['ContactName']).take(6);
query = (e.text !== '') ? query.where('ContactName', 'startswith', e.text, true) : query;
e.updateData(data, query);
}
});
//render the component
customers.appendTo('#ddlelement');
<!DOCTYPE html><html lang="en"><head>
<title>Essential JS 2 DropDownList</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Typescript UI Controls">
<meta name="author" content="Syncfusion">
<link href="styles.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-base/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-inputs/styles/material.css" rel="stylesheet">
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-dropdowns/styles/material.css" rel="stylesheet">
<script src="https://cdn.syncfusion.com/ej2/27.2.2/dist/ej2.min.js" type="text/javascript"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id="container" style="margin:0 auto; width:250px;">
<br>
<input type="text" id="ddlelement">
</div>
<script>
var ele = document.getElementById('container');
if(ele) {
ele.style.visibility = "visible";
}
</script>
<script src="index.js" type="text/javascript"></script>
</body></html>