Classes

  ClassDescription
AjaxContainerControl
Common implmentation for Controls implementing IAjaxContainerControl interface. Usage is to implement IAjaxContainerControl and forward every method in that interface to this class. All AjaxContainer Controls supports partial rendering by supporting the ForceAnUpdate method and related method TrackControlAdditions which means that the user can only render new controls that are appended on the control when needed. Examples of controls using this class is Panel, HybridPanelBase and MultiView
AjaxControl
This is the worker class used by Gaia Ajax Controls to initialize the ajax machinery. It handles state, rendering, callbacks, general inclusion of resources and more.

Usage is to implement IAjaxControl and write forward calls in that interface to this class.

AjaxEffectEvent
An EffectEvent is a client side "event" dispatched by a Gaia Control or navtive DOM element For example the Window supports events like Appearing, Closing, Minimizing, etc and these effect events all have custom properties passed into the event arguments on the client. To properly connect an Effect to one of these pure client side events you should add the effect to the Effect collection of the control and also use an effect event to tie them together. The available effect events are commonly made available as static functions on the control itself.
AjaxEffectEventFactory
The AjaxEffectEvent factory is used to create common Effect events where mostly the functionName and the afterFinish parameter is in use. This allows you to more easily create required Effect Events.
AjaxSerializableAttribute
Attribute class for telling the Gaia Core Runtime that a property is serializable. Usage is to submit the JavaScript "setter method" as JSMethodName part of the Attribute. Then when the property is changed during an Ajax Callback the framework itself will handle serializing the new value back to the client.
AjaxSerializableAttributeBase
Abstract base class for all AjaxSerializable attributes.
AjaxSerializableUrlAttribute
Apply attribute to the property the value of which needs to be formatted as an Url. The value will be formatted using Control.ResolveClientUrl method.
Aspect
This class implements IAspect and can be used as the base class for creating your own Aspects. If you want to be able to bind your aspects to members (ie. properties, events) you need to inherit from this class so that the sender argument get's correct.
Aspect<(Of <(T>)>)
Contains equality operators to avoid duplicate aspects. Inherit from this class if you don't plan to add your own equality checks.
AspectableAjaxControl
This is the worker class used by Aspectable Gaia Controls. It's primary responsibility is to handle Aspects. Usage is to implement IAjaxControl and forward every method in that interface to this class.
AspectClickable
Aspect class for making elements clickable. Element you attach this Aspect to can be clicked with the mouse even though they're not "natively" clickable elements. When clicked you will be able to trap that event on the server through the Clicked of the DblClicked event. Both single clicks and double clicks are supported, you can choose which of the two (or both) you wish to trap for the widget you attach this aspect to.
AspectClickable..::.ClickEventArgs
EventArgs for Clicked and the DblClicked events. Notice here that you do have access to the x and y coordinate of the place the mouse cursor was at when the event was raised.
AspectCollection
Helper class to make registering of ParentControl abstracted while adding Aspects into a Control
AspectDraggable
Aspect class for making elements draggable or movable. Element you attach this Aspect to can be dragged around on screen with mouse. See AspectDroppable for how to make it possible to track specific places they are dropped.
AspectDroppable
Aspect class for making elements droppable. Element you attach this Aspect to can "catch" Drop events from other Draggable elements that have the same Accept string.
AspectDroppable..::.DroppedEventArgs
EventArgs class for the Dropped Event.
AspectGeneric
Generic Aspect with Generic Events. This aspect is used to handle some scenarios the other aspects where not designed to handle but which we didn't feel justified creating explicit aspect for. E.g. "blur" and "focus" on widgets can be handled with this Aspect.
AspectHoverable
AspectHoverable can dispatch server events on true MouseOver/MouseOut events for a control. It automatically takes care of the bubbling problem and only dispatches the event if you have subscribed to it and if it actually is a true MouseOver of that Element.
Also notice that the MouseOver and MouseOut events for many of the Gaia Ajax controls actually use AspectHoverable under the hood by using AspectBindings. In many cases it's more appropriate to use those events directly instead of adding the Aspect.
AspectHoverable..::.HoverEventArgs
EventArgs for the Hover Event
AspectKey
Aspect class for making elements trap the key clicking events. Element you attach this Aspect will raise the KeyPressed Event when a key is clicked while widget have focus.
Making key shortcuts available for your end users can increase the productivity typical of repeating operations. Currently the key events listen on any Gaia input control like TextBox, DropDownList that currently have focus.
AspectKey..::.Key
Represents a Key with its modifiers (shift, control, etc...)
AspectKey..::.KeyEventArgs
EventArgs for the KeyDown and KeyUp Events.
AspectKey..::.KeyFilter
Key code filters used with KeyUp and/or KeyDown events.
AspectKey..::.KeyPressedEventArgs
EventArgs for the KeyPressed Event.
AspectKey..::.KeyPressFilter
Character filter used with KeyPress event.
AspectKey..::.KeySuppressionFilter
Base class for all filters which support key event suppression. Suppression may include default action and/or event propogation preventions.
AspectModal
Aspect for making Widgets Modal by obscuring the entire surface on the screen. If you attach this to a widget and you make the widget visible during a callback then only that widget (and widgets with higher z-index) will be "accessible" to be clicked by the end user since all other widgets will be "obscured" by a DIV which will fill up the entire viewport of the browser.

Modality is something that previously only was available when developing Windows Forms applications, but now with Gaia Ajax it's made available as an Aspect which you can attach to almost all Gaia Controls via the Aspects collection


It can be customized with a Color and Opacity by using an overloaded ctor

The Window has the Modal property which is automatically adding the Aspect for you if set to true.

AspectMouseMove
Aspect class for trapping MouseMove Events on elements. You would think that this is *impossible* online since it would result in something similar to a DOS attack on the server, however the polling time can be configured.
AspectMouseMove..::.MouseMoveEventArgs
EventArgs for the MouseMove Event
AspectResizable
Aspect class for making elements resizable. With this aspect you can make ANY widget resizable by dragging its borders. Events will be raised (if subscribed to) on the server when the Widget has been resized by the user.
AspectScrollable
Aspect class for tracking "scroll events" on widgets. Widgets you attach this aspect to can raise the Scroll event when the user scrolls the widget. Either when scrolling to the bottom or when scrolling at all.
AspectScrollable..::.ScrollEventArgs
EventArgs for the Scroll Event
AspectUpdateControl
Aspect for specializing UpdateControls for specific widgets. If some widget needs special UpdateControl capabilities then use this one. The existance of this aspect will override the Manager.Instance.UpdateControl property but only for the specific widget owning this Aspect.
This is a useful feature when you only have a few time consuming functions and/or you want to display a local update control near that particular control.
AtomicInvoker

Class that encapsulates initialization and destruction logic as a unit and deterministically executes them by exploiting the "using" or "IDisposable" pattern.

This class is very useful for having code executes by guarantee at some specific point in your sequence. If you have two or three operations which are completely dependant upon the order of execution in addition to that you also need guarantees that all three things should execute then this class is just what you need.

BoundField
Represents a field that is displayed as text in a data-bound control.
BrowserHistory
The BrowserHistory Control allows you to add states to your application by using the AddHistory function. When the user clicks back in the browser, the state info will be passed to the server in the Navigated event. This is an Ajax request where you can restore the state of your application based on this information.
BrowserHistory..::.BrowserHistoryEventArgs
EventArgs used when the Navigated event fires. Here you will get access to the Token that was used as a bookmark in the browser history. From that you can restore state.
Button
The Gaia Ajax Button displays a push button control on the Web page. It inherits from the ASP.NET Button, and has built-in Ajax behaviour.
ButtonField
Represents a field that is displayed as a button in a data-bound control.
CheckBox
The Gaia Ajax CheckBox displays a check box that allows the user to select a true or false condition. It inherits from the ASP.NET CheckBox, and has built-in Ajax behaviour.
CheckBoxField
Represents a Boolean field that is displayed as a check box in a data-bound control.
CheckBoxList
The Gaia Ajax CheckBoxList creates a multi selection check box group that can be dynamically created by binding the control to a data source. It inherits from the ASP.NET CheckBoxList, and has built-in Ajax behaviour.
ClientUtils
Various ClientSide utilities to modify DOM from the server.
CommandField
Represents a special field that displays command buttons to perform selecting, editing, inserting, or deleting operations in a data-bound control.
CompareValidator
Compares the value entered by the user in an input control with the value entered in another input control, or with a constant value.
ComposeXhtml
The ComposeXhtml is a helper class for creating xhtml compliant markup as string values. The ToString() and Write() functions take either an XhtmlTagFactory or XhtmlTextWriter input parameter in a delegate.
ControlCollectionExcept<(Of <(T>)>)
This control collection works on top of an existing collection and will shadow controls of a specific type. It will make combination controls like TreeViewItem have a collection of normal childcontrols and the specific TreeViewItems childcontrols.
ControlCollectionOf<(Of <(T>)>)
A special control collection wrapper that works on top of an existing controls collection and only return the controls of the specified generic type parameter. This collection will shadow all other controls and will be perceived non existant in the collection.
ControlCollectionWrapper<(Of <(T>)>)
An abstract control collection wrapper that implements ICollection over a normal control collection. The wrapper will only work on top of an existing ControlCollection and you can create a custom implementation in a derived class. Examples include ControlCollectionOf and ControlCollectionExcept
Css
Css Helper class
CustomValidator
todo: write documentation
DataControlFieldHeaderCell
DropDownList
The Gaia Ajax DropDownlist represents a control that allows the user to select a single item from a drop-down list. It inherits from the ASP.NET Button, and has built-in Ajax behaviour.
DynamicImage
A Gaia Ajax DynamicImage can be thought of like a "normal" image except that it has no src attribute. Instead it has the capability of "dynamically render" its image through a publically available event. The DynamicImage has an event called RetrieveImage which will be called when it's time to "update" the image control with new "image data". From this event you can construct a System.Drawing.Bitmap object which will be rendered onto the surface of your DynamicImage. This makes it very easy to e.g. create a Captcha Control or render images which only exist in your database etc.
DynamicImage..::.RetrieveImageEventArgs
Passed to RetrieveImage event when an Image is needed for you DynamicImage object
Effect
Base class for Effects. note: This class has not been marked abstract for backwards compatibility. Ideally you should not use the ctor, but rather construct each individual effect descendant directly. For example new EffectShow, new EffectHide,
EffectCollection
Collection of Effects.
EffectControl
Composite builder block for Ajax Effect Controls keeping track of the Effects collection. Don't forget to forward calls to the OnPreRender method() for script inclusion.
EffectUtils
Contains Utility methods for working with Effects in your application.
GaiaAjaxConfiguration
The Gaia Ajax Configuration class
GaiaControl
Gaia Base Control, useful if you need to create your own Ajax Control and don't want to start from scratch. If inheriting from this class you get a LOT for free when creating your own "custom extension widgets". This class inherits from the System.Web.UI.Control and is useful if you create "invisible" Ajax Controls like for instance our Timer control which is inheriting from this class. It might also be a useful base class for your extension controls if you don't need the overhead from the System.Web.UI.WebControls.WebControl class like style collection, Border, BackgroundColor and so on. It is our most lightweight Ajax Extension Control base class. Very useful class if you need to implement your own Ajax Extensions Controls with as few lines of code as possible.
GaiaWebControl
Gaia Base WebControl, useful if you need to create your own Ajax Control and don't want to start from scratch. By inheriting from this class you can with extremely few lines of code implement your own Ajax Extension WebControl. Note that this is the *exact* counterpart to the GaiaControl except that this one inherits from ASP.NET WebControl instead of ASP.NET Control which means you can create Ajax Controls with Style collection, Border, Color, Font properties and so on. If you need a more "lightweight" Ajax Control then you probably should rather inherit from GaiaControl instead.
GenericControlCollection<(Of <(T>)>)
Generic Controls Collection
GridView
The Gaia Ajax GridView displays the values of a data source in a table where each column represents a field and each row represents a record. It inherits from the ASP.NET GridView, and has built-in Ajax behaviour.
GridViewRow
Ajaxified GridViewRow
HiddenField
The Gaia Ajax HiddenField depresents a hidden field used to store a non-displayed value. It inherits from the ASP.NET Button, and has built-in Ajax behaviour.
HybridControlCollection<(Of <(T>)>)
Special Controls Collection for Hybrid Controls. It will only return the user defined custom controls and not the controls that are part of the composition. You can also use this collection wrapper if you need to filter your custom controls somehow. Just pass in a reference to the collection of controls that should be filtered out.
HybridPanelBase
Base class for "hybrid controls". A HybridControl is an Ajax Control which have child widgets inside of it which are "part of the widget". E.g. the Window is a good example of such a control since it has both "normal" child controls which you can add to yourself in addition to that some of the controls (close button, maximize etc) are part of the widget itself. Use this class as base class if you intend to create such controls yourself.
Image
Gaia Ajax Image displays an image on a Web page. It inherits from the ASP.NET Image, and has built-in Ajax behaviour.
ImageButton
Gaia Ajax ImageButton displays an image and responds to mouse clicks on the image. It inherits from the ASP.NET ImageButton, and has built-in Ajax behaviour.
ImageField
Represents a field that is displayed as an image in a data-bound control.
ImageMap
The Gaia Ajax Image displays an image on a page. When a hot spot region defined within the ImageMap control is clicked, the control either generates an Ajax callback (postback) to the server or navigates to a specified URL. It inherits from the ASP.NET ImageMap, and has built-in Ajax behaviour.
Label
The Gaia Ajax Label displays text on a Web page. It inherits from the ASP.NET Label, and has built-in Ajax behaviour.
LinkButton
The Gaia Ajax LinkButton displays a hyperlink-style button control on a Web page. It inherits from the ASP.NET LinkButton, and has built-in Ajax behaviour.
ListBox
The Gaia Ajax ListBox creates a single-selection or multiselection list box. It inherits from the ASP.NET ListBox, and has built-in Ajax behaviour.
Manager
This is the "Manager" of Gaia Ajax Widgets. Basically contains lots of nice to have methods like IsAjaxCallback end so on. The Manager is also responsible for rendering the updates back to the HTTP Response Class is a Singleton which means you cannot instantiate object of it but you can access the only object in existence from the static Instance property of the class.
MethodAttribute
Attribute to mark a Method as valid for an Ajax method invocation. Without this attribute no method can be called from JavaScript on the client side. Used by Control Developers to create extension controls with support from calling methods from the server which maps back to methods on the client side.
MouseEventArgs
Base EventArgs for Mouse related events
MultiView
The Gaia Ajax MultiView represents a control that acts as a container for a group of View controls. It inherits from the ASP.NET MultiView, and has built-in Ajax behaviour.
It is often a better alternative than using panels, because it will help you to only display one View at the time.
Panel
The Gaia Ajax Panel represents a control that acts as a container for other controls. It inherits from the ASP.NET Panel, and has built-in Ajax behaviour.
PropertyStateManagerControl
Helper class for injecting changes back to the client and/or rendering the changes back to the client after changes have occured in a Gaia Ajax Callback.
PropertyStateManagerControl..::.ChildSnapshotTakenEventArgs
Event argument used when OnChildSnapshotTaken is called.
PropertyStateManagerImageMap
Helper class for detecting changes in ListControl.Items Collection. Used by Control Developers only.
PropertyStateManagerListControl
Helper class for detecting changes in ListControl.Items Collection. Used by Control Developers only.
PropertyStateManagerWebControl
Helper class for injecting changes back to the client and/or rendering the changes back to the client after changes have occured in a Gaia Ajax Callback.
RadioButton
The Gaia Ajax RadioButton represents a single radio button control. It inherits from the ASP.NET RadioButton, and has built-in Ajax behaviour.
RadioButtonList
The Gaia Ajax RadioButtonList represents a list control that encapsulates a group of radio button controls. It inherits from the ASP.NET RadioButtonList, and has built-in Ajax behaviour.
RangeValidator
todo: write documentation
RegisterAspect
Renders a clientside representation of the aspect with construction and options/parameters. It has a nice syntax and allow you to do chaining of function calls. Use this one if you create your own Ajax Extension Controls.
RegisterControl
Renders a clientside representation of the control with construction, options/parameters, event observations and rendering of aspects. It has a nice syntax and allow you to do chaining of function calls. Use this one if you create your own Ajax Extension Controls.
RegisterEffect
Script Builder for Effects. Simplifies generating error free JavaScript code for use in Gaia
RegisterObject<(Of <(T>)>)
Core Abstract Builder class for clientside object construction. Offers a nice convenient syntax for initializing clientside objects like controls, aspects and effects
RegularExpressionValidator
todo: write documentation
RequiredFieldValidator
todo: write documentation
StateUtil
This little State Utility is used on statebags to get and set values. It will by default return generic default values for structs or you can provide custom default values. When the value is set to a default value it will not be persisted in the statebag.
TableCell
TextBox
The Gaia Ajax TextBox displays a text box control for user input. It inherits from the ASP.NET TextBox, and has built-in Ajax behaviour.
Timer
This is our Ajax Timer Control. The Gaia Ajax Timer will poll the server raising an event handler every n'th second according to which interval you have configured it to do so. It can be disabled and enabled from the server and from the Event Handler you can do whatever you wish with other controls on the page. Including creating new controls and update existing ones.
ValidationSummary
todo: write documentation

Interfaces

  InterfaceDescription
AspectKey..::.IFilter
Key filter interface
IAjaxButtonControl
Extends IButtonControl interface by requiring implementors to support ajax related properties
IAjaxContainerControl
This interface defines that a Gaia Control is a container widget which means it can contain child controls. Examples of such Controls are Panel, MultiView etc.
IAjaxControl
Implement this interface on any control where you need to interface with the Gaia Ajax Control Engine.
IAjaxControlNoRoot
Interface for all ajax controls, which do not render a root element
IAspect
Interface all aspects must implement
IAspectableAjaxControl
Implemented by Controls to which Aspects can be attached
IEffect
Implemented on Effect explicitly to make a cleaner API when working with effects.
IEffectContainer
Interface applied to Effect Containers for accessing the Child Effects
IExtensionDesignerAccessor
This interface is used by ExtensionControlDesigner to explicitely ask the control implementing it, to set it pre render defaults when appropriate
IExtraPropertyCallbackRenderer
This interface helps you add up custom rendering logic to the PropertyStateManagerControl class so that you may add up rendering logic to complex for the AjaxSerializableAttribute to handle itself.
ISkinControl
The ISkinControl applies default skins to Gaia Controls if a CssClass or StylesheetTheme is not applied.

Delegates

  DelegateDescription
AjaxControl..::.ClearPropertyStateDelegate
Delegate specifying a delegate which will be called when clearing of the dirtyness of some properties during LoadPostData() may be nesseccary
AjaxControl..::.LoadPostDataDelegate
Delegate that identifies the LoadPostData method which exists on Control. Used in combination with ExecuteLoadPostData.
AtomicInvoker..::.Action
Callback method type
ComposeXhtml..::.RenderStringDelegateFactory
The RenderStringDelegateFactory is used as input parameter to functions where it's useful to have access to the XhtmlTagFactory
ComposeXhtml..::.RenderStringDelegateStream
The RenderStringDelegateStream is used as input parameter to functions where you need access to the Stream. Used in Gaia.WebWidgets.AjaxControl
ComposeXhtml..::.RenderStringDelegateTextWriter
The RenderStringDelegateTextWriter is used as input parameter to functions where you need access to the TextWriter. Used in Gaia.WebWidgets.AjaxContainerControl

Enumerations

  EnumerationDescription
AspectGeneric..::.GenericEvent
GenericEvent Enum, defines what type of event on the client-side you are interested in trapping.
AspectKey..::.KeyCode
Common KeyCodes.
AspectResizable..::.ResizeModes
Denotes through which borders or their combination(s) control can be resized.
AspectScrollable..::.ScrollModes
Specifies in what direction or combination of directions scrolling should be trapped.
DynamicImage..::.RetrieveImageEventArgs..::.ImageType
How to flush image back to Client
Effect..::.TypeOfEffect Obsolete.
The type of effect to execute
PropertyStateManagerWebControl..::.WebControlProperty
Supported properties dirtyness of which can be cleared using ClearDirty() method
RegisterControl..::.ObserveEvent
Event Enumerations for the Observe function.