Angular Material Tutorial - 29 - Data table Filtering

Codevolution
29 Apr 201904:04

Summary

TLDRThis video script offers a concise guide on implementing filtering in Angular Material tables. It outlines a three-step process: creating a data source with the MatTableDataSource class, adding an input field with MatInput for user text input, and defining an 'applyFilter' method to update the data source's filter property. The script demonstrates how assigning a filter value triggers the data source to display only rows containing the filter text, enhancing the user experience by making data navigation straightforward and efficient.

Takeaways

  • 📊 Angular Material simplifies data table functionalities like filtering, sorting, and pagination.
  • 🔍 To implement filtering, first create a data source using `MatTableDataSource`.
  • 📋 Instantiate a `MatTableDataSource` and pass in the data as an argument.
  • 🔍 Add an input field with `mat-form-field` for users to enter filter text.
  • 💡 Utilize the `keyUp` event to trigger filtering as the user types.
  • 🎯 The `applyFilter` method is called on `keyUp`, using the input value.
  • 📊 The `applyFilter` method sets the filter property of the `MatTableDataSource`.
  • 🔽 The data source automatically filters rows based on the provided filter value.
  • 🔢 Filtering can be applied to both text and numeric values in the data table.
  • 🌟 Angular Material's `MatTableDataSource` class handles the logic for filtering.
  • 🚀 Further videos will cover sorting and pagination functionalities in data tables.

Q & A

  • What are the main features of Angular Material that the video script discusses?

    -The video script discusses the features of filtering, sorting, and pagination in Angular Material. These features simplify the process of managing data in a table format.【1】

  • How does the video script suggest to start implementing filtering in Angular Material?

    -The video script suggests that the first step to implement filtering is to create a data source as an instance of the MatTableDataSource class.【1】

  • What is the second step mentioned in the video script for setting up a filter?

    -The second step is to create an input field where the user can enter the filter text, using the mat-form-field and mat-input attributes in the HTML.【1】

  • What event should be listened to in order to filter the data table?

    -The 'keyup' event should be listened to in order to filter the data table based on the user's input.【1】

  • What method is called when the user types text in the filter input?

    -The method called when the user types text in the filter input is 'applyFilter'.【1】

  • How is the 'applyFilter' method defined in the video script?

    -The 'applyFilter' method is defined in the component class, and it accepts the filtered text as a string. It then assigns the filter text value to the 'filter' property of the data source.【1】

  • What does the 'MatTableDataSource' class do when a filter value is assigned to its 'filter' property?

    -When a filter value is assigned to the 'filter' property of the MatTableDataSource class, it reduces each row to a serialized form and filters out the row if it does not contain the filtered value.【1】

  • How does the filter work in practice according to the video script?

    -In practice, the filter works by checking if the data row contains the filtered value. If it does, the row is displayed; if not, it is filtered out. This can be demonstrated by typing letters or numbers into the filter input and seeing the table update accordingly.【1】

  • What will be covered in the subsequent videos following the one described in the script?

    -In the subsequent videos, sorting and pagination features in Angular Material's data tables will be covered.【1】

  • How does the video script describe the process of filtering as a whole?

    -The video script describes the process of filtering as a three-step process: creating a data source instance, creating an input filter, and assigning the filter value to the data source's filter property.【1】

  • What is the purpose of the 'filterValue.trim().toLowerCase()' in the 'applyFilter' method?

    -The 'filterValue.trim().toLowerCase()' in the 'applyFilter' method is used to standardize the filter value by removing any whitespace and converting it to lowercase, ensuring that the filtering is case-insensitive and clean.【1】

Outlines

00:00

🚀 Simplifying Filtering, Sorting, and Pagination in Angular Material

This paragraph introduces the ease of implementing filtering, sorting, and pagination features in Angular Material. It outlines a three-step process to achieve filtering in a data table. First, it explains how to create a data source using the MatTableDataSource class from Angular Material. Next, it describes the creation of an input field for user-provided filter text, utilizing the mat-form-field and mat-input attributes. The paragraph then details the implementation of the 'applyFilter' method, which listens for key events and filters the data based on the entered text. The summary emphasizes the functionality of the MatTableDataSource class, which filters data rows based on the presence of the filter string, providing a seamless user experience for data table interactions.

Mindmap

Keywords

💡Angular Material

Angular Material is a UI components library for Angular applications, which provides a wide range of pre-built, well-designed, and accessible components. In the context of this video, Angular Material is used to simplify the process of adding advanced features like filtering, sorting, and pagination to a data table.

💡Filtering

Filtering is the process of narrowing down data to only show items that meet certain criteria. In the context of the video, it refers to the ability to filter a data table based on user input, such as typing a character or number into a filter input field to display only the relevant rows.

💡Sorting

Sorting is the process of arranging data in a specific order, such as alphabetical or numerical. While not the primary focus of the video, it is mentioned as a feature that will be covered in subsequent videos, indicating that Angular Material provides mechanisms for ordering data in a table.

💡Pagination

Pagination is the process of dividing a large dataset into smaller, manageable groups or 'pages'. This concept is briefly mentioned in the video script as one of the features that can be made simple using Angular Material, allowing users to navigate through different sections of a large dataset easily.

💡Data Source

A data source is the origin of the data that is being displayed and manipulated within an application. In the context of this video, creating a data source involves instantiating the MatTableDataSource class from Angular Material and passing in the element data as an argument.

💡MatTableDataSource

MatTableDataSource is a class provided by Angular Material that serves as a data source for tables. It is responsible for holding the data and providing methods for operations such as filtering and sorting.

💡mat-form-field

mat-form-field is an Angular Material component used to create input fields with various features, such as labels, placeholders, and form control integration. In the context of the video, it is used to create a filter input field where the user can enter the text for filtering the data table.

💡Keyup Event

The keyup event is a browser event that is fired when a key has been released (not pressed) on the keyboard. In the context of the video, it is used to trigger the filtering process every time the user releases a key after typing in the filter input field.

💡applyFilter Method

The applyFilter method is a function used to filter the data in a data source based on the user's input. It is called in response to the keyup event and takes the filter text as a parameter, applying it to the data source's filter property.

💡Filter Text

Filter text refers to the string of characters entered by the user in the filter input field, which is used to determine which items in the data source should be displayed. The filter text is processed and applied to the data source to filter out the results.

💡Data Table

A data table is a visual representation of data in a tabular format, consisting of rows and columns. In the context of the video, the data table is the component being enhanced with features like filtering, sorting, and pagination using Angular Material.

💡Serialization

Serialization is the process of converting data into a format that can be easily stored, transmitted, or filtered. In the context of the video, when a filter value is assigned to the data source, each row of the data table is reduced to a serialized form to determine if it contains the filter value.

Highlights

Features like filtering, sorting, and pagination have been simplified in Angular Material.

The video demonstrates filtering in Angular Material, with sorting and pagination to be covered in subsequent videos.

Filtering is achieved through three simple steps using Angular Material's mat table data source class.

The first step is to import MatTableDataSource from Angular Material.

Create a data source property as an instance of MatTableDataSource, passing in element data as the argument.

The second step involves creating an input field with mat-form-field and mat-input attributes for the user to enter filter text.

Listen to the 'key' event to filter the data table when the user types in the input field.

The 'applyFilter' method is called on the 'keyup' event, using the filter text accessed by event.target.value.

The final step is to define the 'applyFilter' method that filters the data source by assigning the filter text to the data source's filter property.

The MatTableDataSource class has a filter property that, when assigned a string, filters out rows not containing the filtered value.

Assigning a filter value to the data source's filter property reduces each row to a serialized form and filters out rows that do not contain the value.

The data source will display a row only if it contains the filter value.

The video provides a practical example of filtering elements with the letter 'H' and numeric values '6'.

The video concludes with a preview of the next topic, which is sorting in data tables.

Transcripts

00:00

features like filtering sorting and

00:03

pagination have been made really simple

00:06

in angular material let's take a look at

00:08

filtering in this video sorting and

00:11

pagination in subsequent videos

00:14

filtering can be achieved in three

00:16

simple steps the first step is to create

00:20

a data source as an instance of the mat

00:23

table data source class so let's begin

00:27

by importing mat table data source from

00:30

angular material next we create a data

00:34

source property as an instance of this

00:37

imported class so data source is going

00:41

to be new mat table data source and then

00:47

we pass in element data as the argument

00:50

so that is our first step creating the

00:53

data source as an instance of the mat

00:56

table data source class second step is

01:00

to create an input field where the user

01:02

can enter the filter text let's add that

01:06

code in the HTML mat form field then an

01:10

input element we add the mat input

01:15

attribute and also a placeholder that

01:18

says filter every time the user enters

01:23

some text we need to filter the data

01:25

table for that we listen to the key of

01:28

event

01:31

so keep up and on keep up we are going

01:34

to call a method called apply filter and

01:38

to this method we pass in the filter

01:41

text which is accessed using dollar

01:44

event dot target dot value that is the

01:51

second step creating a filter input the

01:55

final step is to define this apply

01:58

filter method which actually filters the

02:00

data source so back in the component

02:03

class apply filter accepts the filtered

02:09

text of type string and within the

02:13

method all we have to do is assign the

02:16

filter text value to the filter property

02:20

of the data source so this dot data

02:23

source dot filter is equal to filter

02:28

value dot trim dot to lowercase now this

02:35

kind of seems like magic but let me tell

02:37

you how it works remember the math table

02:41

data source class that we imported well

02:44

that class has a property called filter

02:48

when you want to filter out the data all

02:51

you have to do is assign a string to

02:54

that property when you assign the filter

02:57

value the data source will reduce each

03:00

row to a serialized form and will filter

03:04

out the row if it does not contain that

03:06

filtered value or to put it in simpler

03:09

terms does the data rope contain the

03:12

filter if yes only then display the row

03:15

so if you take a look at the browser you

03:19

can see that we have a filter input I

03:21

type H and you can see it filters the

03:25

elements type H E and it filters further

03:29

I can also filter on numeric values type

03:33

6 and you can see it filters out the

03:36

rows that don't contain the number 6 so

03:40

three basic steps for filtering creating

03:43

the data source as an

03:45

instance of math table datasource

03:47

creating the input filter and finally on

03:51

care of that input element assign the

03:54

filter value to the filter property of

03:56

the data source alright in the next

03:59

video let's take a look at sorting in

04:02

data tables

Rate This

5.0 / 5 (0 votes)

Related Tags
AngularMaterialTableFeaturesDataManagementFrontendDevelopmentFilteringTutorialSortingOverviewPaginationBasicsCodeExplanationWebDevelopmentTableOptimization