Skip to content

[Feature]: TableV2 upgrade (visibility toogling, full screen, grouping) #41396

@akhabibulin-casecreate

Description

@akhabibulin-casecreate

Is there an existing issue for this?

  • I have searched the existing issues

Summary

Problem Description

The TableV2 widget is Appsmith’s primary tool for data display. While functional, it is starting to feel outdated and lacks several key capabilities that would significantly improve the user experience and performance of applications when dealing with large, complex datasets. Currently, implementing crucial features, like column visibility control, requires cumbersome workarounds which lead to slower performance and increased development complexity.

Suggested Enhancements

I propose three main improvements for the TableV2 widget to make it more modern and powerful:

1. Full-Screen/Maximize View Option

There should be a built-in button or option to expand the TableV2 widget to full-screen (similar to implementations found in tools like Streamlit or other BI platforms).
This is essential for analyzing large datasets or tables with many columns, allowing the user to focus on the data without surrounding UI distractions.

2. Built-in Column Visibility Control via Interface (Column Visibility Toggling)

Currently, managing column visibility requires using an external widget (like Multiselect or Buttin) and manually binding it to the visible property of each column. This approach has several drawbacks: 1) It slows down the application, especially with many columns. 2) It complicates the process for end-users and requires extra logic to set up. I propose adding an integrated column visibility control (e.g., a gear icon or a dropdown within the table header like Streamlit has) that allows users to dynamically hide/show columns. Ideally, these settings should be persisted for each user (via local storage), as different users often need different columns from the same table.

3. Support for Expandable Rows and Row Grouping

The widget currently lacks the native ability to organize data hierarchically.

Add the ability to group rows based on the value of a specific column (e.g., "Status," "Department") and display these groups as expandable sections. This allows users to see only the subsets of data they need at any given moment.

Why should this be worked on?

1. Improved User Experience and Data Analysis

  • Full-Screen Mode: Users dealing with extensive datasets or tables spanning many columns often require an immersive view to perform detailed analysis. Without a native full-screen mode, users are forced to manage data in a confined space, leading to frustrating horizontal scrolling and reduced focus.
  • Row Grouping: The current table lacks the ability to structure complex data. Grouping rows by common attributes (e.g., status, project, customer) is a fundamental feature for organizing large tables, allowing end-users to quickly drill down into relevant sections and summarize information efficiently.

2. Streamlined Development and Better Performance

  • Native Column Visibility Control: Relying on external Multiselect widgets and custom bindings for column visibility is an inefficient and slow workaround.
    • It increases development time (more components and code to manage).
    • It degrades performance because the logic runs on the client side with unnecessary component dependencies.
    • A native solution would be optimized for speed and allow the feature to be easily persisted per user, which is essential for multi-user applications where different roles require different views of the same data.

3. Modernizing the Core Widget

  • TableV2 is fundamental. As the primary data output tool, it should meet the standards of modern low-code/BI platforms. Adding these features is crucial for keeping Appsmith competitive and viable for building enterprise-grade tools that require sophisticated data interaction capabilities.

Metadata

Metadata

Labels

EnhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions