Autocomplete to multiple columns

Thank you 


3 Replies

VJ Vinitha Jeyakumar Syncfusion Team May 6, 2022 02:55 PM UTC

Hi Diogo,


Your requirement to filter search using multiple fields can be achieved by using predicate of Data Manager in the Filtering event of Auto Complete control. please check the code below,

Code snippet:

        <ejs-autocomplete id="country" datasource="@ViewBag.data" filtering="onFiltering"  placeholder="Select a Country" popupheight="220px">
            <e-autocomplete-fields Value="Id" Text ="Country" ></e-autocomplete-fields>
        </ejs-autocomplete>
   
<script>
    function onFiltering(e) {
       //debugger;
        var predicate = new ej.data.Predicate('Country', 'contains', e.text, true);
        predicate = predicate.or('Id', 'contains', e.text, true)
        predicate = predicate.or('Name', 'contains', e.text, true);
        var query = new ej.data.Query();
        query = (e.text !== '') ? query.where(predicate) : query;
        e.updateData(@Html.Raw(JsonConvert.SerializeObject(ViewBag.data)), query);
    }
</script>
HomeController.cs
public IActionResult Index()
        {
           
            ViewBag.data = new DataModels().Tasks();
            return View();
        }
       
        public class DataModels
        {
            public string Country { get; set; }
            public string Id { get; set; }

            public string Name { get; set; }

            public List<DataModels> Tasks()
            {
                List<DataModels> TaskDetails = new List<DataModels>();
                TaskDetails.Add(new DataModels { Country = "Australia", Id = "AU", Name = "Andrew"});
                TaskDetails.Add(new DataModels { Country = "Bermuda", Id = "SM", Name = "Fuller" });
                TaskDetails.Add(new DataModels { Country = "Canada", Id = "CA", Name = "Janet" });
                TaskDetails.Add(new DataModels { Country = "Denmark", Id = "DK", Name = "John" });
                TaskDetails.Add(new DataModels { Country = "Cameroon", Id = "CM" , Name = "Leverling" });
                return TaskDetails;
            }
        }


Regards,
Vinitha


DL Diogo Lima May 6, 2022 09:57 PM UTC

Thank you so much for your time


It worked as intended, tank you!
Diogo Lima



VJ Vinitha Jeyakumar Syncfusion Team May 9, 2022 05:17 AM UTC

Hi Diogo,


You are welcome. please get back to us if you need any further assistance.

Regards,
Vinitha

Loader.
Up arrow icon