HtmlForgeX

API Reference

Class

EmailDynamicTableColumn`2

Namespace HtmlForgeX.Email
Assembly HtmlForgeX.Email
Implements
IEmailDynamicColumn<T>
Modifiers sealed

Column definition for EmailDynamicTable.

Inheritance

  • Object
  • EmailDynamicTableColumn`2

Type Parameters

T
TProp

Constructors

public EmailDynamicTableColumn<T, TProp>(Expression<Func<T, TProp>> selector) #

Initializes a new instance of the EmailDynamicTableColumn class using the provided property selector.

Parameters

selector System.Linq.Expressions.Expression{System.Func{`0,`1}} requiredposition: 0
Expression selecting the property to bind to.

Methods

public EmailDynamicTableColumn<T, TProp> WithAlignment(Alignment alignment, Boolean alsoHeader = true) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the default alignment for all cells in this column.

Parameters

alignment HtmlForgeX.Email.Alignment requiredposition: 0
Alignment for cells.
alsoHeader System.Boolean = true optionalposition: 1
When true, sets the header alignment too.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithBool(String trueText = "Yes", String falseText = "No", EmailStatusTone trueTone = Success, EmailStatusTone falseTone = Danger) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders boolean values as compact status indicators (dot + label) without raw HTML. Aligns to center by default.

Parameters

trueText System.String = "Yes" optionalposition: 0
falseText System.String = "No" optionalposition: 1
trueTone HtmlForgeX.Email.EmailStatusTone = Success optionalposition: 2
falseTone HtmlForgeX.Email.EmailStatusTone = Danger optionalposition: 3
public EmailDynamicTableColumn<T, TProp> WithBytes(Int32 decimals = 2, EmailBytesUnitSystem unitSystem = Binary, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats numeric values as byte sizes (e.g., "2.47 MB"). Applies right alignment by default.

Parameters

decimals System.Int32 = 2 optionalposition: 0
unitSystem HtmlForgeX.Email.EmailBytesUnitSystem = Binary optionalposition: 1
culture System.Globalization.CultureInfo = null optionalposition: 2
WithCell 3 overloads
public EmailDynamicTableColumn<T, TProp> WithCell(Action<TProp, EmailTableCell> template) #
Returns: EmailDynamicTableColumn<T, TProp>

Configures a custom cell template for this column (no raw HTML required). When set, the template is responsible for setting the cell content.

Parameters

template System.Action{`0,`1,HtmlForgeX.Email.EmailTableCell} requiredposition: 0
WithCell(System.Action{`0,HtmlForgeX.Email.EmailTableCell} template) #

Configures a custom cell template for this column using the row item only.

Parameters

template System.Action{`0,HtmlForgeX.Email.EmailTableCell} required
WithCell(System.Action{`1,HtmlForgeX.Email.EmailTableCell} template) #

Configures a custom cell template for this column using the bound value only.

Parameters

template System.Action{`1,HtmlForgeX.Email.EmailTableCell} required
public EmailDynamicTableColumn<T, TProp> WithCellStyle(Action<EmailTableCell> style) #
Returns: EmailDynamicTableColumn<T, TProp>

Applies a style to every cell in this column.

Parameters

style System.Action{HtmlForgeX.Email.EmailTableCell} requiredposition: 0
Action that modifies the cell.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithCompactNumber(Int32 decimals = 1, EmailCompactNumberCase suffixCase = Lower, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats numeric values as compact numbers (e.g., "1.2k", "4.7M"). Applies right alignment by default.

Parameters

decimals System.Int32 = 1 optionalposition: 0
suffixCase HtmlForgeX.Email.EmailCompactNumberCase = Lower optionalposition: 1
culture System.Globalization.CultureInfo = null optionalposition: 2
public EmailDynamicTableColumn<T, TProp> WithConditionalStyle(Func<T, Boolean> condition, Action<EmailTableCell> style) #
Returns: EmailDynamicTableColumn<T, TProp>

Applies conditional styling to cells in this column.

Parameters

condition System.Func{`0,System.Boolean} requiredposition: 0
Predicate determining when to apply the style.
style System.Action{HtmlForgeX.Email.EmailTableCell} requiredposition: 1
Action to modify the cell when the condition is met.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithCurrency(String currencySymbol = "$", Int32 decimals = 2, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders numeric values as a currency string using a fixed symbol (e.g., "$12.34"). Applies right alignment by default.

Parameters

currencySymbol System.String = "$" optionalposition: 0
decimals System.Int32 = 2 optionalposition: 1
culture System.Globalization.CultureInfo = null optionalposition: 2
public EmailDynamicTableColumn<T, TProp> WithCustomRender(Func<TProp, String> renderer) #
Returns: EmailDynamicTableColumn<T, TProp>

Uses a custom renderer to produce the column output.

Parameters

renderer System.Func{`1,System.String} requiredposition: 0
Function that converts the property value to a string.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithDate(String format = "MMM d, yyyy", CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats date values using an email-friendly default (e.g., "Jan 2, 2025").

Parameters

format System.String = "MMM d, yyyy" optionalposition: 0
culture System.Globalization.CultureInfo = null optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithDateTime(String format = "MMM d, yyyy · h:mm tt", CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats date+time values using an email-friendly default (e.g., "Jan 2, 2025 · 1:05 PM").

Parameters

format System.String = "MMM d, yyyy · h:mm tt" optionalposition: 0
culture System.Globalization.CultureInfo = null optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithDuration(Int32 maxParts = 2) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats TimeSpan values as compact durations (e.g., "1h 30m") and aligns them right by default.

Parameters

maxParts System.Int32 = 2 optionalposition: 0
public EmailDynamicTableColumn<T, TProp> WithEnum(Boolean humanize = true) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders enum values (optionally humanized) without requiring manual string formatting.

Parameters

humanize System.Boolean = true optionalposition: 0
public EmailDynamicTableColumn<T, TProp> WithFormat(String format) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets a string format used when rendering the column value.

Parameters

format System.String requiredposition: 0
Format string compatible with Object).

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithHash(EmailFontSize size = Small, Boolean breakAll = true) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders values as hash/checksum monospace strings (SHA256/MD5).

Parameters

size HtmlForgeX.Email.EmailFontSize = Small optionalposition: 0
breakAll System.Boolean = true optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithHashCompact(Int32 head = 12, Int32 tail = 8, EmailFontSize size = Small, String ellipsis = "…") #
Returns: EmailDynamicTableColumn<T, TProp>

Renders values as hash/checksum monospace strings and truncates the middle for readability.

Parameters

head System.Int32 = 12 optionalposition: 0
tail System.Int32 = 8 optionalposition: 1
size HtmlForgeX.Email.EmailFontSize = Small optionalposition: 2
ellipsis System.String = "…" optionalposition: 3
public EmailDynamicTableColumn<T, TProp> WithHeader(String header) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the header text for the column.

Parameters

header System.String requiredposition: 0
Header text to display.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithHeaderAlignment(Alignment alignment) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the header alignment for the column.

Parameters

alignment HtmlForgeX.Email.Alignment requiredposition: 0
Alignment for the header.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithHeaderWidth(String width) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the header width for the column (e.g. "20%", "120px").

Parameters

width System.String requiredposition: 0
public EmailDynamicTableColumn<T, TProp> WithId(EmailFontSize size = Small, Boolean breakAll = true) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders values as ID-like monospace strings (request IDs, order IDs, etc.).

Parameters

size HtmlForgeX.Email.EmailFontSize = Small optionalposition: 0
breakAll System.Boolean = true optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithIdCompact(Int32 head = 10, Int32 tail = 6, EmailFontSize size = Small, String ellipsis = "…") #
Returns: EmailDynamicTableColumn<T, TProp>

Renders values as ID-like monospace strings and truncates the middle for readability.

Parameters

head System.Int32 = 10 optionalposition: 0
tail System.Int32 = 6 optionalposition: 1
size HtmlForgeX.Email.EmailFontSize = Small optionalposition: 2
ellipsis System.String = "…" optionalposition: 3
public EmailDynamicTableColumn<T, TProp> WithIpAddress(EmailFontSize size = Small) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders values as IP addresses in monospace (typically without aggressive wrapping).

Parameters

size HtmlForgeX.Email.EmailFontSize = Small optionalposition: 0
public EmailDynamicTableColumn<T, TProp> WithMobileHeader(String header) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the mobile header text for stacked layouts.

Parameters

header System.String requiredposition: 0
public EmailDynamicTableColumn<T, TProp> WithMoney(String currencySymbol = "$", Int32 decimals = 2, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Alias for CultureInfo) to match the EmailTableCell.WithMoney naming.

Parameters

currencySymbol System.String = "$" optionalposition: 0
decimals System.Int32 = 2 optionalposition: 1
culture System.Globalization.CultureInfo = null optionalposition: 2
public EmailDynamicTableColumn<T, TProp> WithNumber(Int32 decimals = 0, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Renders numeric values using grouping separators (e.g., "1,234" or "1,234.50"). Applies right alignment by default.

Parameters

decimals System.Int32 = 0 optionalposition: 0
culture System.Globalization.CultureInfo = null optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithPercent(Int32 decimals = 0, CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats numeric values as percent strings (expects percent units, e.g. 12.3 => "12.3%"). Applies right alignment by default.

Parameters

decimals System.Int32 = 0 optionalposition: 0
culture System.Globalization.CultureInfo = null optionalposition: 1
public EmailDynamicTableColumn<T, TProp> WithQty(CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats numeric values as quantities (grouped integers) and aligns them to the center by default.

Parameters

culture System.Globalization.CultureInfo = null optionalposition: 0
public EmailDynamicTableColumn<T, TProp> WithRelativeTime(Nullable<DateTimeOffset> now = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats date/time values relative to now (e.g., "2h ago", "in 3d") and aligns them right by default.

Parameters

now System.Nullable{System.DateTimeOffset} = null optionalposition: 0
public EmailDynamicTableColumn<T, TProp> WithSortIndicator(SortDirection direction) #
Returns: EmailDynamicTableColumn<T, TProp>

Sets the sort indicator displayed with the column header.

Parameters

direction HtmlForgeX.Email.SortDirection requiredposition: 0
Direction of sort indicator.

Returns

The column instance for method chaining.

public EmailDynamicTableColumn<T, TProp> WithTime(String format = "h:mm tt", CultureInfo culture = null) #
Returns: EmailDynamicTableColumn<T, TProp>

Formats time values using an email-friendly default (e.g., "1:05 PM").

Parameters

format System.String = "h:mm tt" optionalposition: 0
culture System.Globalization.CultureInfo = null optionalposition: 1

Properties

public virtual String PropertyName { get; } #

Property name derived from the selector.

public virtual String Header { get; set; } #

Header text for the column.

public virtual String HeaderMobileText { get; set; } #

Optional header text for stacked mobile layout.

public virtual String HeaderWidth { get; set; } #

Optional width for the column header (e.g. "20%", "120px").

public virtual String HeaderAlign { get; set; } #

Alignment for the column header (optional).

public String Format { get; set; } #

Optional string format.

public Func<TProp, String> CustomRender { get; set; } #

Custom renderer for the column value.

public virtual SortDirection SortIndicator { get; set; } #

Sort indicator for the header.