Data Moving Plugin Styling
The Data Moving Plug-in supports both the Jquery UI and the JQuery Mobile styling frameworks. Moreover, the developer has the option to customize the standard Jquery UI, or JQuery Mobile styling, and/or to define new styling frameworks. Different styling options can be mixed in the same page, and also in the same control.
Styling settings are contained in instances of the class MVCControlsToolkit.Controls.CssSettings, and can be activated by calling the static method void CssSettings.Define( CssSettings x). Once activated the styling settings are used in the rendering of all Data Moving Plug-in controls, till a new instance of CssSettings is activated.
If we need to activate new settings only for a few lines of code, after which we need to return to the previous settings we may use the two static methods: CssSettings.Begin( CssSettings x). and CssSettings.End().
Style settings include information, on how to style normal content, header content, buttons, alternate grids rows, etc. The Data Moving Plug-in comes with three predefined style settings:
- CssSettingsJQueryUI: It uses JQuery UI Css classes to style Data Moving Plug-in Controls.
- CssSettings.JQueryMobile: It uses JQuery Mobile Css classes to style Data Moving Plug-in Controls.
- CssSettings.JQueryMobileExt: It uses JQuery Mobile Css classes + an extended set of icons (see here) to style Data Moving Plug-in Controls.
JQuery Mobile settings need some parameters that may be provided with the Specify method:
- CssSettings.JQueryMobileExt.Specify("b", "a", "e", "e")
The first parameter is the swatch to use for the normal content, the second parameter the swatch for the headers, the third parameter the swatch to use for all clickable elements (mainly buttons), and the last parameter is the swatch for the alternate grid rows.
The developer may customize the default settings either by filling a custom instance of the CssSettings class (or an instance of a custom subclass of it), or by changing just some properties of an existing CssSettings instance with the help of the CssSettings Modify(Action<CssSettings> changes) method.
For instance we would like to change just the alternate row grid class we may write:
- CssSettings.Define(CssSettings.JQueryUI.Modify(m => { m.DefaultAlternateClass = "myClass"; }));
Below a grid styled with CssSettingsJQueryUI:
And a similar grid styled with CssSettings.JQueryMobileExt:
In the CssSettings.JQueryMobileExt Grid we used different swatches to render the buttons in the header (black buttons) and the buttons in the normal rows(yellow buttons). In fact yellow buttons in the header would have been unacceptable because of the yellow/black contrast, while yellow buttons on the normal rows are nice. This result has been obtained by changing the settings of the toolbar and of the headers of the grid:
- .StartToolbar(false)
- .CustomCssSettings(CssSettings.JQueryMobileExt.Specify("b", "a", "a", "e"))
- .RowContainerLevel(ItemContainerLevel.Row)
- .RowHeight("3em", true)
- .AddButtonToolbar(ShowButtonIn.Both, CommandButtonType.FilterWindow).ColumnWidth(40).EndButtons()
- .AddPagerColumn("FullCompletePager")
- .EndToolBar()
- .CustomCssSettingsHeaderFooter(CssSettings.JQueryMobileExt.Specify("b", "a", "a", "e"))
Below a video showing some Data Moving Plug-in controls styled in different ways:
That’ all for now!
Stay tuned and give a look also to all other Data Moving Plugin introductory tutorials and videos
Francesco
Tags: MVC Controls Toolkit, JQuery UI, Data Moving, MVC Controls, MVC Helpers, Mvc, JQuery Mobile