ModalGridCustomizer¶
ModalGridCustomizer is the designer-facing control that gives an UltraWebGrid end-user column/page-size customization. It wires together an internal (assembly-Friend) GridCustomizationPanel popup body, a toolkit ModalPopupExtender, and an InfragisticsGridCustomizer that holds and persists the actual state; the control itself owns the designer-property surface (target grid, column overrides, binding behavior) and the event handlers that react to the popup's OK/Apply/Save-as-Default actions. (BR-AJAX-021)
Purpose¶
- Resolves or creates a per-grid
InfragisticsGridCustomizeron first load and reuses it across postbacks, so column/page-size state survives round trips for the life of the page's model. (BR-AJAX-021) - Wires the internal
GridCustomizationPanelpopup to a toolkitModalPopupExtendertargeting a caller-supplied trigger image, presenting the column checkbox list and optional page-size editor as a modal dialog. - Applies the user's OK/Apply choices to the grid for the session, or persists them as the model's default preferences on Save-as-Default, depending on which button the user clicks. (BR-AJAX-037, BR-AJAX-039)
- Lets the consumer choose how the grid rebinds after customization — via the object binder, native
DataBind, or a fully custom page handler — through theBindingBehaviorssetting. (BR-AJAX-038)
Context¶
- Namespace:
SAIF.Presentation.Web.Controls.V2.AJAX - Assembly/package:
SAIF.Presentation.Web.Controls.AJAX.Infragistics111(packaged inSAIF.BOF.Presentation.Web.Infragistics111) - Base class: SAIFAJAXControlAncestor
- Collaborates with the assembly-internal (
Friend)GridCustomizationPanel, which renders the popup body and raisesAfterRender,OKButtonClicked,BindGrid, andOnSavePreferencesback to this control. BecauseGridCustomizationPanelis not publicly accessible, it is not documented as a separate API page; its behavior is described here and in Customize grid columns via the modal popup.
Public members¶
| Member | Signature | Purpose |
|---|---|---|
TargetControls.GridId |
Property TargetControls.GridId As String |
ID of the UltraWebGrid this instance customizes |
TargetControls.ObjectBinderId |
Property TargetControls.ObjectBinderId As String (default objBinder) |
ID of the clsObjectBindManager used to rebind the grid when BindingBehavior = ObjectBinder |
TargetControls.LinkedRefreshControlID |
Property TargetControls.LinkedRefreshControlID As String (default "") |
ID of a WARP refreshed by Apply; empty hides the Apply button (BR-AJAX-036) |
ColumnVisiblity.AlwaysVisibleColumns |
Property ColumnVisiblity.AlwaysVisibleColumns As String (default "") |
Semicolon-delimited grid column keys the user can never hide (BR-AJAX-028) |
ColumnVisiblity.AlwaysHiddenColumns |
Property ColumnVisiblity.AlwaysHiddenColumns As String (default "") |
Semicolon-delimited grid column keys the user can never reveal (BR-AJAX-028, BR-AJAX-032) |
ControlPaging |
Property ControlPaging As Boolean (default False) |
Whether this customizer controls the grid's page size and forces paging on (BR-AJAX-022, BR-AJAX-041) |
BindingBehavior |
Property BindingBehavior As BindingBehaviors (default ObjectBinder) |
Chosen rebind strategy after customization (BR-AJAX-038) |
GridCustomizer |
ReadOnly Property GridCustomizer As InfragisticsGridCustomizer |
Resolves (creating if absent) the model's per-grid customizer instance keyed by TargetControls.GridId (BR-AJAX-021) |
OnInitialize |
Event OnInitialize |
Declared public event that is never raised anywhere in this library's live source* |
BindGrid |
Event BindGrid |
Raised to rebind the target grid after customization, per BindingBehavior (BR-AJAX-038) |
Nested types¶
| Type | Kind | Purpose |
|---|---|---|
ColumnVisibilityOverride |
Nested property class | Groups AlwaysVisibleColumns and AlwaysHiddenColumns under ColumnVisiblity |
TargetControlIDData |
Nested property class | Groups GridId, ObjectBinderId, and LinkedRefreshControlID under TargetControls |
BindingBehaviors |
Enum (ObjectBinder, DataBind, Custom) |
Selects the rebind strategy applied by CustomizationPanel_BindGrid (BR-AJAX-038) |
Inherited public members¶
Members in this section are inherited from SAIFAJAXControlAncestor in SAIF.Presentation.Web.Controls.AJAX.Infragistics111. They are available on this type through inheritance.
| Member | Signature | Purpose | Origin |
|---|---|---|---|
RootObject |
ReadOnly Property RootObject As Object |
The hosting page's Model property value |
SAIF.Presentation.Web.Controls.AJAX.Infragistics111 — SAIFAJAXControlAncestor |
IsFirefox |
ReadOnly Property IsFirefox As Boolean |
Browser-capability test for the current request | SAIF.Presentation.Web.Controls.AJAX.Infragistics111 — SAIFAJAXControlAncestor |
Behavioral notes¶
MGC_-prefixed preference-key constants are declared on this class but never used; the actual persisted preference keys come fromInfragisticsGridCustomizer'sIGC_constants. Whether these are leftovers from an earlier design is unknown.**OnInitializeis declared but never raised — consumers cannot currently hook into initialization through this event.*- The default icon
/Resources/Images/DefaultModalGridCustomizer.gifis used when no image is configured for the trigger, mirroringHoverHelp's default-image pattern. (BR-AJAX-043)
Constraints and usage notes¶
TargetControls.GridIdmust reference a realUltraWebGridon the page; a missing target grid or missing object binder throwsApplicationExceptionfrom the respective reflection property.*- The default image path
/Resources/Images/DefaultModalGridCustomizer.gifis a hosting-environment contract that consuming applications must publish. (BR-AJAX-043) BindingBehavior = Customrequires the hosting page to handle theBindGridevent itself; otherwise the grid is not rebound after customization. (BR-AJAX-038)
Related documentation¶
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.Infragistics111/ModalGridCustomizer.vbSAIF.Presentation.Web.Controls.AJAX.Infragistics111/GridCustomizationPanel.vb