API Reference
EmailDynamicTableColumn`2
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}}
- Expression selecting the property to bind to.
Methods
public EmailDynamicTableColumn<T, TProp> WithAlignment(Alignment alignment, Boolean alsoHeader = true) #EmailDynamicTableColumn<T, TProp>Sets the default alignment for all cells in this column.
Parameters
- alignment HtmlForgeX.Email.Alignment
- Alignment for cells.
- alsoHeader System.Boolean = true
- 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) #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"
- falseText System.String = "No"
- trueTone HtmlForgeX.Email.EmailStatusTone = Success
- falseTone HtmlForgeX.Email.EmailStatusTone = Danger
public EmailDynamicTableColumn<T, TProp> WithBytes(Int32 decimals = 2, EmailBytesUnitSystem unitSystem = Binary, CultureInfo culture = null) #EmailDynamicTableColumn<T, TProp>Formats numeric values as byte sizes (e.g., "2.47 MB"). Applies right alignment by default.
Parameters
- decimals System.Int32 = 2
- unitSystem HtmlForgeX.Email.EmailBytesUnitSystem = Binary
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithCell(Action<TProp, EmailTableCell> template) #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}
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}
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}
public EmailDynamicTableColumn<T, TProp> WithCellStyle(Action<EmailTableCell> style) #EmailDynamicTableColumn<T, TProp>Applies a style to every cell in this column.
Parameters
- style System.Action{HtmlForgeX.Email.EmailTableCell}
- 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) #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
- suffixCase HtmlForgeX.Email.EmailCompactNumberCase = Lower
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithConditionalStyle(Func<T, Boolean> condition, Action<EmailTableCell> style) #EmailDynamicTableColumn<T, TProp>Applies conditional styling to cells in this column.
Parameters
- condition System.Func{`0,System.Boolean}
- Predicate determining when to apply the style.
- style System.Action{HtmlForgeX.Email.EmailTableCell}
- 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) #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 = "$"
- decimals System.Int32 = 2
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithCustomRender(Func<TProp, String> renderer) #EmailDynamicTableColumn<T, TProp>Uses a custom renderer to produce the column output.
Parameters
- renderer System.Func{`1,System.String}
- 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) #EmailDynamicTableColumn<T, TProp>Formats date values using an email-friendly default (e.g., "Jan 2, 2025").
Parameters
- format System.String = "MMM d, yyyy"
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithDateTime(String format = "MMM d, yyyy · h:mm tt", CultureInfo culture = null) #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"
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithDuration(Int32 maxParts = 2) #EmailDynamicTableColumn<T, TProp>Formats TimeSpan values as compact durations (e.g., "1h 30m") and aligns them right by default.
Parameters
- maxParts System.Int32 = 2
public EmailDynamicTableColumn<T, TProp> WithEmailAddressLink(Func<TProp, String> text = null, EmailFontSize size = Regular) #EmailDynamicTableColumn<T, TProp>Renders values as email (mailto) links (expects the value to represent an email address).
Parameters
- text System.Func{`1,System.String} = null
- size HtmlForgeX.Email.EmailFontSize = Regular
public EmailDynamicTableColumn<T, TProp> WithEnum(Boolean humanize = true) #EmailDynamicTableColumn<T, TProp>Renders enum values (optionally humanized) without requiring manual string formatting.
Parameters
- humanize System.Boolean = true
public EmailDynamicTableColumn<T, TProp> WithFormat(String format) #EmailDynamicTableColumn<T, TProp>Sets a string format used when rendering the column value.
Parameters
- format System.String
- Format string compatible with Object).
Returns
The column instance for method chaining.
public EmailDynamicTableColumn<T, TProp> WithHash(EmailFontSize size = Small, Boolean breakAll = true) #EmailDynamicTableColumn<T, TProp>Renders values as hash/checksum monospace strings (SHA256/MD5).
Parameters
- size HtmlForgeX.Email.EmailFontSize = Small
- breakAll System.Boolean = true
public EmailDynamicTableColumn<T, TProp> WithHashCompact(Int32 head = 12, Int32 tail = 8, EmailFontSize size = Small, String ellipsis = "…") #EmailDynamicTableColumn<T, TProp>Renders values as hash/checksum monospace strings and truncates the middle for readability.
Parameters
- head System.Int32 = 12
- tail System.Int32 = 8
- size HtmlForgeX.Email.EmailFontSize = Small
- ellipsis System.String = "…"
public EmailDynamicTableColumn<T, TProp> WithHeader(String header) #EmailDynamicTableColumn<T, TProp>Sets the header text for the column.
Parameters
- header System.String
- Header text to display.
Returns
The column instance for method chaining.
public EmailDynamicTableColumn<T, TProp> WithHeaderAlignment(Alignment alignment) #EmailDynamicTableColumn<T, TProp>Sets the header alignment for the column.
Parameters
- alignment HtmlForgeX.Email.Alignment
- Alignment for the header.
Returns
The column instance for method chaining.
public EmailDynamicTableColumn<T, TProp> WithHeaderWidth(String width) #EmailDynamicTableColumn<T, TProp>Sets the header width for the column (e.g. "20%", "120px").
Parameters
- width System.String
public EmailDynamicTableColumn<T, TProp> WithId(EmailFontSize size = Small, Boolean breakAll = true) #EmailDynamicTableColumn<T, TProp>Renders values as ID-like monospace strings (request IDs, order IDs, etc.).
Parameters
- size HtmlForgeX.Email.EmailFontSize = Small
- breakAll System.Boolean = true
public EmailDynamicTableColumn<T, TProp> WithIdCompact(Int32 head = 10, Int32 tail = 6, EmailFontSize size = Small, String ellipsis = "…") #EmailDynamicTableColumn<T, TProp>Renders values as ID-like monospace strings and truncates the middle for readability.
Parameters
- head System.Int32 = 10
- tail System.Int32 = 6
- size HtmlForgeX.Email.EmailFontSize = Small
- ellipsis System.String = "…"
public EmailDynamicTableColumn<T, TProp> WithIpAddress(EmailFontSize size = Small) #EmailDynamicTableColumn<T, TProp>Renders values as IP addresses in monospace (typically without aggressive wrapping).
Parameters
- size HtmlForgeX.Email.EmailFontSize = Small
public EmailDynamicTableColumn<T, TProp> WithLink(Func<TProp, String> href, Func<TProp, String> text = null, EmailFontSize size = Regular, EmailTextWrapMode wrapMode = Default) #EmailDynamicTableColumn<T, TProp>Renders values as safe links in table cells (no raw HTML required).
Parameters
- href System.Func{`1,System.String}
- text System.Func{`1,System.String} = null
- size HtmlForgeX.Email.EmailFontSize = Regular
- wrapMode HtmlForgeX.Email.EmailTextWrapMode = Default
public EmailDynamicTableColumn<T, TProp> WithMobileHeader(String header) #EmailDynamicTableColumn<T, TProp>Sets the mobile header text for stacked layouts.
Parameters
- header System.String
public EmailDynamicTableColumn<T, TProp> WithMoney(String currencySymbol = "$", Int32 decimals = 2, CultureInfo culture = null) #EmailDynamicTableColumn<T, TProp>Alias for CultureInfo) to match the EmailTableCell.WithMoney naming.
Parameters
- currencySymbol System.String = "$"
- decimals System.Int32 = 2
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithNumber(Int32 decimals = 0, CultureInfo culture = null) #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
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithPercent(Int32 decimals = 0, CultureInfo culture = null) #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
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithPhoneNumberLink(Func<TProp, String> text = null, EmailFontSize size = Regular) #EmailDynamicTableColumn<T, TProp>Renders values as phone (tel) links (expects the value to represent a phone number).
Parameters
- text System.Func{`1,System.String} = null
- size HtmlForgeX.Email.EmailFontSize = Regular
public EmailDynamicTableColumn<T, TProp> WithQty(CultureInfo culture = null) #EmailDynamicTableColumn<T, TProp>Formats numeric values as quantities (grouped integers) and aligns them to the center by default.
Parameters
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithRelativeTime(Nullable<DateTimeOffset> now = null) #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
public EmailDynamicTableColumn<T, TProp> WithSortIndicator(SortDirection direction) #EmailDynamicTableColumn<T, TProp>Sets the sort indicator displayed with the column header.
Parameters
- direction HtmlForgeX.Email.SortDirection
- Direction of sort indicator.
Returns
The column instance for method chaining.
public EmailDynamicTableColumn<T, TProp> WithTime(String format = "h:mm tt", CultureInfo culture = null) #EmailDynamicTableColumn<T, TProp>Formats time values using an email-friendly default (e.g., "1:05 PM").
Parameters
- format System.String = "h:mm tt"
- culture System.Globalization.CultureInfo = null
public EmailDynamicTableColumn<T, TProp> WithUrlLink(Func<TProp, String> text = null, EmailFontSize size = Regular, EmailTextWrapMode wrapMode = Default) #EmailDynamicTableColumn<T, TProp>Renders values as URL links (uses the value as the URL by default).
Parameters
- text System.Func{`1,System.String} = null
- size HtmlForgeX.Email.EmailFontSize = Regular
- wrapMode HtmlForgeX.Email.EmailTextWrapMode = Default
Inherited Methods
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.