Skip to main content

DataTable

Struct DataTable 

Source
pub struct DataTable<D: TableDelegate> { /* private fields */ }
Expand description

A table element with support for row, column, and cell selection.

§Features

  • Multiple Selection Modes: Support for row, column, and cell selection
  • Cell Selection: Click to select individual cells, with keyboard navigation
  • Virtual Scrolling: Efficient rendering of large datasets
  • Resizable Columns: Drag column borders to resize
  • Movable Columns: Drag column headers to reorder
  • Fixed Columns: Pin columns to the left side
  • Sortable Columns: Click column headers to sort
  • Context Menus: Right-click support for rows and cells

§Cell Selection Mode

When cell selection is enabled via TableState::cell_selectable():

  • Click on cells to select them
  • A row header column appears on the left for selecting entire rows (use TableState::row_header() to hide it)
  • Keyboard navigation (arrow keys, Tab, Home, End, PageUp, PageDown) works at cell level
  • Right-click and double-click events are supported

See TableState for more details on cell selection.

§Example

ⓘ
let table_state = cx.new(|cx| {
    TableState::new(delegate, cx)
        .cell_selectable(true)
        .row_selectable(true)
});

DataTable::new(&table_state)
    .stripe(true)
    .bordered(true)

Implementations§

Source§

impl<D> DataTable<D>
where D: TableDelegate,

Source

pub fn new(state: &Entity<TableState<D>>) -> Self

Create a new DataTable element with the given TableState.

Source

pub fn stripe(self, stripe: bool) -> Self

Set to use stripe style of the table, default to false.

Source

pub fn scroll_bounce(self, enabled: bool) -> Self

Bounce the rows at the vertical boundaries, keeping headers and scrollbars fixed. On by default on iOS, Android and macOS, off elsewhere.

Source

pub fn bordered(self, bordered: bool) -> Self

Set to use border style of the table, default to true.

Source

pub fn header_row_height(self, height: impl Into<Pixels>) -> Self

Set the height of each header row.

Column-group rows use the same height, so the whole header is this height times the number of header rows. Body rows keep the height from Size::table_row_height. When this is unset, header rows use that same height.

Source

pub fn fixed_cols_border(self, fixed_cols_border: bool) -> Self

Set whether to draw the border on the right edge of the fixed columns, default to true.

Turn it off when the fixed cells draw that edge themselves, so the boundary is not drawn twice.

Source

pub fn scrollbar_visible(self, vertical: bool, horizontal: bool) -> Self

Set scrollbar visibility.

Trait Implementations§

Source§

impl<D> FocusableExt for DataTable<D>
where D: TableDelegate,

Source§

fn focus_ring(self, enabled: bool) -> Self

Source§

fn is_focus_ring_enabled(&self) -> bool

Source§

impl<D: TableDelegate> IntoElement for DataTable<D>

Source§

type Element = ViewElement<DataTable<D>>

The specific type of element into which the implementing type is converted. Useful for converting other types into elements automatically, like Strings
Source§

fn into_element(self) -> Self::Element

Convert self into a type that implements Element.
Source§

fn into_any_element(self) -> AnyElement

Convert self into a dynamically-typed AnyElement.
Source§

impl<D> RenderOnce for DataTable<D>
where D: TableDelegate,

Source§

fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement

Render this component into an element tree. Note that this method takes ownership of self, as compared to Render::render() method which takes a mutable reference.
Source§

impl<D> Sizable for DataTable<D>
where D: TableDelegate,

Source§

fn with_size(self, size: impl Into<Size>) -> Self

Set the ui::Size of this element. Read more
Source§

fn xsmall(self) -> Self

Set to Size::XSmall
Source§

fn small(self) -> Self

Set to Size::Small
Source§

fn large(self) -> Self

Set to Size::Large

Auto Trait Implementations§

§

impl<D> !RefUnwindSafe for DataTable<D>

§

impl<D> !UnwindSafe for DataTable<D>

§

impl<D> Freeze for DataTable<D>

§

impl<D> Send for DataTable<D>
where Entity<TableState<D>>: Send,

§

impl<D> Sync for DataTable<D>
where Entity<TableState<D>>: Sync,

§

impl<D> Unpin for DataTable<D>
where Entity<TableState<D>>: Unpin,

§

impl<D> UnsafeUnpin for DataTable<D>

Blanket Implementations§

Source§

impl<E> AnimationExt for E
where E: IntoElement + 'static,

Source§

fn with_animation( self, id: impl Into<ElementId>, animation: Animation, animator: impl Fn(Self, f32) -> Self + 'static, ) -> AnimationElement<Self>
where Self: Sized,

Render this component or element with an animation
Source§

fn with_animations( self, id: impl Into<ElementId>, animations: Vec<Animation>, animator: impl Fn(Self, usize, f32) -> Self + 'static, ) -> AnimationElement<Self>
where Self: Sized,

Render this component or element with a chain of animations
Source§

fn with_spring<T>( self, id: impl Into<ElementId>, animation: SpringAnimation<T>, animator: impl FnOnce(Self, <T as SpringTarget>::Output) -> Self + 'static, ) -> SpringAnimationElement<Self>
where Self: Sized, T: SpringTarget, <T as SpringTarget>::Output: 'static,

Renders this component or element at the value produced by a spring. Read more
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> FluentBuilder for T
where T: IntoElement,

Source§

fn map<U>(self, f: impl FnOnce(Self) -> U) -> U
where Self: Sized,

Imperatively modify self with the given closure.
Source§

fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_else( self, condition: bool, then: impl FnOnce(Self) -> Self, else_fn: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally modify self with the given closure.
Source§

fn when_some<T>( self, option: Option<T>, then: impl FnOnce(Self, T) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is Some.
Source§

fn when_none<T>( self, option: &Option<T>, then: impl FnOnce(Self) -> Self, ) -> Self
where Self: Sized,

Conditionally unwrap and modify self with the given closure, if the given option is None.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> View for T
where T: RenderOnce,

Source§

fn entity_id(&self) -> Option<EntityId>

This view’s identity, if it has one. A view typically holds the backing entity as a field and returns its EntityId here. Read more
Source§

fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement

Render this view into an element tree, consuming self.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more