|
|
Free Download |
Documentation |
Samples
West
Wind Ajax Toolkit
for ASP.NET
(formerly wwHoverPanel Control
Library)
©
West Wind Technologies, 2006-2008
Requires: Microsoft ASP.NET 2.0 or later
License: Free use and re-distribution
The West Wind Ajax Toolkit is a small self-contained library of
AJAX controls and infrastructure classes that makes it easy to add
AJAX functionality to ASP.NET applications. The library provides
several high level controls that can be visually manipulated and
support features like remote Method callbacks to the server, pop up
windows, modal dialogs, draggable windows and a date time picker. In
addition, a number of lower level tools such as a JSON Serializer, a
generic JSON Callback manager, a ClientScript Proxy, a script
compression module are also included.
This library is free and comes with full source code.
The key features of the library are:
- JSON Method Callbacks and the
wwCallbackMethod Control
The library provides several easy and lightweight mechanisms for
making AJAX callbacks to the server to retrieve data from server
methods. The wwCallbackMethod control allows creation of server
side methods in an ASP.NET Page or any control derived class,
mark them with a [CallbackMethod] attribute and route callbacks
to these methods. The
control manages two-way JSON of parameters and return values.
Both the control and a client side class are provided to make these callbacks.The beauty of this approach is its simplicity - you can pass
various types including complex objects, arrays, collections and datatables/datarows back and forth over the wire and program to
them on the client. It's very easy and you can be up and running
making AJAX method literally calls in minutes without any setup
other than creating the server methods and a single client
function call.
Some other useful control features:
- Control how data is passed back to the server
(Get,Post,PostNoViewState,PostMethodParametersOnly)
- Works with non-serializable types and anonymous types
and even plain Object
- Support for DataSet/DataTable/DataRow serialization to
the client
- Automatic Callback detection (wwMethodCallback.IsCallback)
- Control developers can directly route AJAX callbacks to
their controls
- High performance
Http Handler option
- wwHoverPanel Control
The wwHoverPanel control allows creation of easy popup windows
with content retrieved from the server with a single line of
client script code. The control allows you to specify a URL and
your single client function call allows specification of
additional parameters for the request. The control can then
automatically retrieve the result from the server and parse the
content into the target panel. Many display features are
automatically configured via server side control properties. You
can set the position of the panel including hover behavior and
positioning at the mouse cursor, manage panel transparency,
displaying shadows, fading in/out of content, making panels
sticky, draggable and closable or simply displaying panels in
place. Most features can be configured entirely through
declarative markup control properties.
Hover behavior can be both inline (using a DIV in the current
document) or using an IFRAME which allows integration of fully
self contained Web pages as pop overs.
- wwDragPanel Control
This control provides draggable and closable windows that you
can use as part of your page. These panels can be set up on the
server side with control properties that set display features
like transparency, shadow offset, ability to close windows. This
is a great control to use in AJAX client applications to 'pop
up' content ontop of existing pages either statically (simply
hiding and making visible) or dynamically by loading content
with Ajax using wwHoverPanel which derives from wwDragPanel.
From the client side any control can be made draggable using the
client side wwDragBehavior class.
- wwModalDialog Control
Provided mainly because of many feature requests this control
provides pop up panels that disable the background content by
overlaying the background with an opaque panel and showing a
panel ontop of it. The control makes it very easy to create the
hover panel layout and easily display it from the client with a
single method call. Both server and client side events are
supported for this control to determine when the dialog is
closed. Inherits from wwDragPanel so the pop up modal panels can
be draggable and closable.
- wwDatePicker Control
Based on Marc Garbanski's jQuery UI Datepicker control this is a
simple and elegant popup date time picker control.
- Client Library
This West Wind Ajax Toolkit also includes a client library of
controls that can be used in JavaScript. There are client side
classes that match the server side controls so you have full
control over the wwHoverPanel and and wwCallbackMethod logic,
wwDragBehavior, wwModalDialog all of which can be driven
entirely through client code.
In addition there are a number of support classes which
include network and UI functionality:
-
wwHttp
Provides a wrapper around the XmlHttp object with robust
error handling and browser independent access to make
remote, asynchronous callbacks to the server.
-
wwControl,
wwList,
wwToolTip
The wwControl class is built as a base control class that
handles many common DOM operations in a browser independent
manner. You can get and set bounds and location, show and
hide, set opacity, assign text and html, do fades, and add
shadows to control. wwList adds list specific functionality
including the ability to databind to arrays of objects or
server retrieved DataTables. wwTooltip is an easy to use
tooltip behavior class that attaches to another control and
provides popover tooltip semantics.
- Utility Classes and Functions
In addition ther are a number of utility classes like
wwUtils that provides several UI features like centering,
shading of background content for overlays, wwEvent for
simpler event binding and unbinding and consistent use of
the Event object, wwDebug for a simple way to display debug
output and a set of ajax helper functions for quickly making
remote callbacks like ajaxRequest, ajaxLoadHtml, ajaxJson.
The library is relatively small at 47k uncompressed (12k
GZipped and minified) and provides many useful features to page
developers.
- JSON Serializer
This library includes a self-contained two-way JSON serializer.
JSON serialization provides the ability to easily pass data from
the server to the client, as well as data from the client back
to the server. This converter can handle many data types
directly, but there are some limitations due to the JavaScript
to .NET type differences. For many common scenarios however, the
serialization is quite adequate.
- ClientScriptProxy
The ClientScriptProxy class provides a wrapper around
Page.ClientScript and the MS Ajax ScriptManager and allows using
the appropriate mechanism depending on whether MS Ajax is
present or not. The class basically mimics the common methods in
both interfaces and based on the availability of ScriptManager
calls the appropriate component. Using this class ensures that
Pages using script and other embedded Page resources work both
in MS Ajax and non-MS Ajax environments which is especially
important for controll development.
- wwScriptCompression
Module
Module that provides script minifiying and GZIP compression to
JavaScript resources without requiring MS Ajax.
It's Free
This is a free utility and it comes with source code. Use and distribute it,
or build it into your own applications as you like. All I
ask is that if you have problems that you let us know by posting a
message on our
message board.
Aloha,
+++ Rick ---
|
Version 1.81 released!
1/8/2008
Version 1.81 adds a date time picker
control and adds a number of features to the JSON callback handler
interfaces.
See what's new.
Free Download
You can download the utility and use it
and redistribute it freely. It also comes with source code so you
can see and tweak how it works. The download contains the control
code, samples and a help
file for documentation.

If you find this tool useful consider making a small donation to
support improvements.
We want your feedback
If you are having problems, questions or
have suggestions or have added your own improvements,
please let us know so we can either fix or improve this tool to
address new scenarios.
|