Skip to content

ModalGridCustomizer

ModalGridCustomizer is the public, page-declarable composite control that lets end users customize an UltraWebGrid's column visibility and paging through a modal popup. It mediates between the target grid, an InfragisticsGridCustomizer (in-memory state), a GridCustomizationPanel (popup UI), and clsPreferences (persisted defaults), implementing Customize and apply grid column visibility and paging.

Purpose

  • Renders a customize-grid icon that opens a ModalPopupExtender-hosted GridCustomizationPanel, letting users select which columns are visible and (optionally) the grid's page size.
  • Resolves and lazily constructs the InfragisticsGridCustomizer for its target grid, wiring the popup's OK/Set-as-default actions to apply and optionally persist the resulting configuration.
  • Rebinds the target grid after customization according to a configurable BindingBehavior (ObjectBinder, DataBind, or Custom).

Context

  • Namespace: SAIF.Presentation.Web.Controls.V2.AJAX
  • Assembly/package: SAIF.Presentation.Web.Controls.AJAX.Infragistics103

Public members

Member Signature Purpose
ColumnVisiblity Property ColumnVisiblity() As ColumnVisibilityOverride Configures the semicolon-delimited always-visible/always-hidden column key lists, enforcing BR-AJAX-002
TargetControls Property TargetControls() As TargetControlIDData Configures the target grid's ID, an optional linked refresh control, and the object-binder control ID
ControlPaging Property ControlPaging() As Boolean Specifies whether this customizer manages the target grid's paging settings
BindingBehavior Property BindingBehavior() As BindingBehaviors Selects how the target grid is rebound after customization: ObjectBinder, DataBind, or Custom
ControlImage ReadOnly Property ControlImage() As Image The rendered customize-grid trigger icon
OnInitialize Event OnInitialize() Raised during control initialization for host page hooks*
BindGrid Event BindGrid() Raised when BindingBehavior = Custom, letting the hosting page's code-behind rebind the grid itself
ColumnVisibilityOverride.AlwaysVisibleColumns Property AlwaysVisibleColumns() As String Semicolon-delimited list of columns that are always displayed and cannot be hidden by the user
ColumnVisibilityOverride.AlwaysHiddenColumns Property AlwaysHiddenColumns() As String Semicolon-delimited list of columns that are always hidden and never shown to the user
TargetControlIDData.GridId Property GridId() As String The ID of the UltraWebGrid this customizer manages
TargetControlIDData.LinkedRefreshControlID Property LinkedRefreshControlID() As String Optional ID of a WARP refreshed when the user applies changes
TargetControlIDData.ObjectBinderId Property ObjectBinderId() As String The page's object-binder control ID, used only when BindingBehavior = ObjectBinder

Inherited public members

Members in this section are inherited from SAIFAJAXControlAncestor and, transitively, System.Web.UI.WebControls.CompositeControl in the .NET Framework Base Class Library. They are available on this type through inheritance.

Member Signature Purpose Origin
RootObject Protected ReadOnly Property RootObject() As Object Lazily resolves and caches the page's "Model" object, used to resolve the model's GridCustomizers list SAIFAJAXControlAncestor
IsFirefox Protected ReadOnly Property IsFirefox() As Boolean Indicates whether the requesting browser identifies itself as Firefox SAIFAJAXControlAncestor
ID Property ID As String The programmatic identifier assigned to this control instance System.Web.dll — System.Web.UI.Control
Visible Property Visible As Boolean Controls whether this control renders on the page System.Web.dll — System.Web.UI.Control
CreateChildControls Overridable Sub CreateChildControls() Builds this composite control's child control tree, including the trigger icon and popup extender System.Web.dll — System.Web.UI.WebControls.CompositeControl
RenderContents Overridable Sub RenderContents(writer As HtmlTextWriter) Renders this composite control's markup to the response stream System.Web.dll — System.Web.UI.WebControls.CompositeControl

Behavioral notes

  • TargetGrid and ObjectBinder property getters throw ApplicationException if the named grid/binder control cannot be resolved via Page.FindControl.
  • The GridCustomizer getter lazily either finds an existing customizer for the target grid in the model's GridCustomizers list, or constructs and registers a new one, per Customize and apply grid column visibility and paging.

Constraints and usage notes

  • Requires TargetControls.GridId to reference an actual UltraWebGrid control on the same page.
  • When BindingBehavior = ObjectBinder (the default), requires a clsObjectBindManager control named per TargetControls.ObjectBinderId (default "objBinder") to be present on the page.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\ModalGridCustomizer.vb