Contacts View PCF Control

 

1. Overview

The ContactsControl component is a custom PowerApps control that displays a searchable and sortable table of contact records. It provides an interactive UI for filtering and selecting records.

2. Functionalities

  • Search Feature: Allows users to filter records by entering text.
  • Sorting: Clickable column headers enable ascending/descending sorting.
  • Record Selection: Users can select a record to trigger a modal alert.
  • Dynamic Rendering: Updates view dynamically based on search and sort input.
  • Custom Styling: Uses external CSS for styling.

3. Component Structure

  • Main Container (HTMLDivElement): Holds the search bar and table.
  • Search Input (HTMLInputElement): Enables real-time search.
  • Table (HTMLTableElement): Displays the records with sortable headers.
  • Modal Alert (HTMLDivElement): Displays selected record details.

4. Implementation Details

4.1 Initialization (init Method)

  • Sets up the main container.
  • Loads external styles.
  • Creates the search input field.

4.2 View Rendering (updateView Method)

  • Renders the table with records.
  • Applies search and sorting logic.

4.3 Data Processing

  • Sorting Logic:
    • Uses currentSortColumn and isAscending flags.
    • Sorts records based on column values.
  • Filtering Logic:
    • Filters records based on user input.
    • Matches input against all columns.
  • Highlighting:
    • Highlights search query within results.

4.4 Event Handling

  • Search Input: Updates the table on input change.
  • Sortable Headers: Click toggles sorting.
  • Row Click: Opens a modal alert with record details.
  • Close Modal: Dismisses the modal when clicked.

5. Helper Methods

  • loadStyles(): Loads external CSS.
  • createSearchInput(): Creates the search field.
  • renderTable(): Builds the table dynamically.
  • highlightText(value, searchQuery): Highlights search results.
  • sortTable(columnName): Toggles sorting state and updates table.
  • getSortIndicator(columnName): Returns sort icon (▲/▼).
  • showCustomAlert(title, message): Displays a modal alert.

6. Cleanup (destroy Method)

  • Clears the container on component unload.

7. Dependencies

  • Uses ComponentFramework.Context for data binding.
  • Requires external CSS (styles.css).

8. Future Enhancements

  • Add pagination for large datasets.
  • Implement multi-column sorting.
  • Enhance modal with more interactive features.

Comments

Popular posts from this blog

Attachment PCF

Trigger JavaScript on Click of Button PCF Control