| Version |
0.8.5 (full changelog) |
| Site |
- New Frag_Root path set via web.config, dictates the virtual location of Fragment ascx files
- Fixed exception when Chan_ paths were not set in web.config, these now properly default
|
| Page |
- Automatically parses, loads and sets properties of Fragments defined in the ASPX
|
| Template |
- Title,Page_Title,Site_Title,Chan_Root,Site_Root,Http_Root tags/tokens filled in after Page contents has been rendered, meaning the page's contents can itself contain the escape codes for these.
|
| Icon |
- Added Date, Link and Blank icons
|
| Controls.Control (base) |
- Fragment support code, inc. allowing nested fragments
- New size property option of "Mega"
|
| Controls.Fragment - NEW |
- Chan's answer to ASP's UserControls, Master Pages and Repeaters
- Can contain and process their own forms and controls, including fragments!
- Prefixxing child controls with Fragment ID is optional and off by default
- Have Render and ToString functions so they can be used as repeating templates
- Can be entirely contained in the ASPX, have contents auto-loaded from an ASCX or loaded on the fly from codebehind
- Can be bound to template regions
|
| Controls.Button |
- Fixed bug where client-side validation was never triggered by a ValidateForm button
|
| Controls.CheckList |
- AddButton() and AddHeadButton() functions + overloads
- Fixed rendering issues where row or head buttons were specified but not both
- Clicked property now returns the Posted Back row id even before the list is populated
|
| Controls.Date |
- Major overhaul and cleanup
- Now includes javascript date picker
- Min and Max values that accept dates and offsets
|
| Controls.List |
- Ability to set class on ListItems, with Add() function overloads to simplify this
|
| Controls.TextBox |
- Breaking Change - Removed Multiline property
- Added Type property with options of single (default), multi and rich
- New Rich mode implimenting CKEditor
- Respects the Class property
|
| Controls.TabPanel |
- Javascript fixup, including remembering selected tab when refreshing/reloading the page
|
| Controls.Upload |
|
| Generic |
- ReplacePaths() - mirrors Site.ReplacePaths()
- ResolvePath() - Combines Server.MapPath() and Site.ReplacePaths() in one
|
| Resources |
- CSS : Increased textbox and button padding from 1px to 3px, making them chunkier
|
| Site Bundles |
- All have had a layout restructure and all use the App_Code for their CS files, rather than requiring a compiled DLL in the bin folder
- Chan_Demo : Now uses a Fragment to layout the page and control the menu, also includes an experimental VS 2008 C# Express solution.
|
| General |
- Chan is now built using Visual C# 2008 Express instead of the .Net 2 SDK, mainly to allow the use of intellisense when developing
- Support for the .Net /App_Code/ directory, instead of requiring a DLL and the .Net SDK
- Various public and protected members and functions converted to internal and/or protected internal
|
| Version |
0.8.1 (full changelog) |
| Site |
- Fixed truncation of second-to-last char when a Root path was read from web.config that had a trailing slash
- New ReplacePaths() function which accepts a string and returns it with [Chan_Root],[Site_Root] and [Http_Root] replaced with their respective web.config entries.
|
| Page |
- NEW Location object instance for simple URI manipulation, replaces pubilc QueryString collection.
- Fixed HEAD inline Script block being rendered when no controls were in the page.
- Removed link to ie6.css
- Controls.css now appears in the HEAD before any user Page_Styles
- General cleanup, now uses StringBuilder and/or Generic.Join() throughout
|
| Template |
- TemplateFile path can now be a local physical path or a relative path - it will figure out which it is automatically.
- TemplateFile can now contain any of the three Chan [????_Root] path escape sequences.
- No longer need to Add() Regions to the Template, if you set a Region's contents via Template[ RegionName ] it will be created automatically
- Removed original built-in Region string getters/setters (only used by Page anyway)
- New built-in regions "Chan_Root","Site_Root","Http_Root" to reflect the [????_Root] path escapes
- New built-in regions "Site_Title" and "Page_Title" to complement the constructed "Title" region
|
| Location - NEW |
- New class which reflects both Javascript's window.location object and the .Net URI object
- Simple cloning constructor for quick manipulation of the current URI
- Built-in read/write and fully public QueryString collection
- Href and RelativeHref string getters for use in link creation or Response.Redirect stuffing
|
| Icon - NEW |
- New class containing a raft of static string getters, each returning the URI of a 16x16 png Icon
- Icons derived from Mark James's
CC-Licensed
Silk Iconset
- Can be utilized directly from ASPX by referencing [Icon.IconName] in an Image or Button control's Path and Image properties, respectively
|
| Controls.Control (base) |
- Better use of native C# String functions in internal logic, including calls to StartsWith() etc.
- Most string manipulation now done using SringBuilgers and/or Generic.Join()
|
| Controls.Button |
- Link and Image properties can now contain any of the three [????_Root] Escapes
- Link property can now start with "^" to signify "Open in new window"
- Image property can now contain Icon class references, e.g. [Icon.Home]
- OnClick now included in submit button javascript onclick if it starts with "return"
- No longer throws an exception when Link and OnClick are both set
- Much needed cleanup of internal logic and rendering code
|
| Controls.CheckList - NEW |
- New Control for building simple Tables which may or may not contain a column of Checkboxes/Radios and Buttons.
- Row-Buttons can have server-side Click() event wired up, just read the CheckBox.Clicked property to find the clicked on Row
- Can be used as a very basic grid control by using tab-delimited Header/Row text
- Built-in Checkbox column has automatic Check-All and Uncheck-All buttons
- Javascript enhanced but 100% NOSCRIPT compatible!
|
| Controls.DropDown |
- Now allows you to set the Value property before filling it with items.
- Add(object,object) overload now also treats DBNull as ""
|
| Controls.Image |
- Path and Href can inlcude any of the three [????_Root] escapes
- Href property can now start with "^" to signify "Open in new window"
- Path property can now include icon escapes, e.g. [Icon.Accept]
- Cleanup of CSS support, inc styling for a disabled non-linked image
|
Controls.Label
Controls.Literal |
- New Persist bool property allowing them to retain their Text across postbacks.
|
| Controls.Link |
- Href can inlcude any of the three [????_Root] escapes
- Href property can now start with "^" to signify "Open in new window"
|
| Controls.List - NEW |
- New Control for building ordered or unorderd lists.
- Includes a small suite of Add() overloads for simple addition of plain text or links
- Contains a child ListItem class for advanced manipulation and creation of nested lists
- Contents can have HtmlEncoding disabled to allow for use of own item HTML
|
| Controls.Panel |
- New Region property, allows a Panel's contents to be automatically rendered into the named Region in the Page's Template.
|
| Controls.Upload |
- Now uses an Icon for its "Change File" button.
- "Change File" button now uses javascript to revert to the standard Upload control, with NOSCRIPT postback fallback
- Some cleanup of code, HTML and CSS
|
| Resources |
- CSS : Now targets Eric Meyer's reset.css
- CSS : Removed grey background for disabled image buttons, but increased the opacity from 50 to 33%
- JS : New C__Http_Root and C__Site_Root global variables representing the root paths
- JS : C__Root renamed to C__Chan_Root for consistency with the other root paths
|
| Site Bundles |
- Chan_Demo : Built in Self_Test page and source removed, replaced with standalone (no codebehind) Chan_Self_Test.aspx
- Chan_Clean : Built in Self_Test source removed, replaced with standalone (no codebehind) Chan_Self_Test.aspx
- Chan_SQLite : Close() and Dispose() called on all DataReaders
- Chan_SQLite : Makes use of new Panel.Region capability and Controls.List
- Chan_SQLite : Included Chan_Self_Test.aspx
|
| |
| Version |
0.8.0 (full changelog) |
| Site |
- New Chan_NoScript config bool - For allowing, forcing or disabling javascript througought the site
|
| Page |
- New Page_NoScript config bool - For allowing, forcing or disabling javascript for all controls on the page
- New Page_Styles string - For listing CSS files to include, works same as Page_Scripts
- New QueryString collection - replaces Request.QueryString and can have items added/removed
- New VirtualPath string property
|
| Controls.Control (base) |
- New NoScript property - For allowing or disabling javascript
- Invalid image styling and placement improved
|
Controls.DecimalBox
Controls.Int32Box |
- Deprecated AutoFormat property.
- New AutoLimit property to auto bind the value to min/max without invalidating the control
- New AutoZero property to auto bing the value to min when it is not a number and the control is Mandatory
- (Int32Box only) New Overflow invalid state for when value is outside Int32 bounds
- Min,Max,Digits and Places are now all nullable, latter two still parse -1 as NULL from ASPX (due to ASPX flaw!)
- Cleanup of code logic, Text property is now read only
|
| Controls.TabPanel |
- Tab switching and validation uses javascript if available
- Allows individual Tabs to be disabled by disabling the Panel
- New QueryString override, allowing you to manually specify [TabPanelID]=[PanelID]
- Now works outside of a Form control
|
| Controls.ImagePanel |
- Target uses Javascript if available
- Remembers and highlights (via css class) the "Selected" image
- When using Target and Javascript the "Zoom" images are precached on the client
- Remove( Image ) and RemoveAll() functions
- Image move and swap functions
- Javascript onclick binding fired when an image is selected
|
| Controls.Image |
- Target works without javascript
- Target allows a value of "switch" for Javascript rollover between Path and Zoom images
- Will show a 16x16 invisible gif if Path is not set
|
| Controls.Upload |
- Fixed!
- Now Base64 encodes its paths for HTML safety and a little obscurity
|
| Controls.DropDown |
- Remembers its selected item across postbacks when disabled
|
| Generic |
- RebuildQueryString and BuildFormAction functions removed (functionality folded into Page)
|
| Resources |
|
| |
| Version |
0.7.9 |
| Site |
- NEW - Chan_Form_AutoValidate web.config bool - Wether or not a form's controls are validated on any/every submit or per-button-controlled
- NEW - Chan_Form_ClientValidate web.config bool - Wether or not to allow client-side javascript pre-validation of form controls
|
| Generic |
- NEW CLASS - Contains static helper functions outside of Server/Page context.
|
| Controls.Control (base) |
- NEW - Enabled bool - Wether or not the user can interact with the control
- NEW - Invalidate( string s ) - Set a control's state to Invalid including a reason string.
|
| Controls.Button |
- NEW - Click Event - Fired after Page.Page_Load for a clicked button
- NEW - Click_BeforePageLoad Event - Fired before Page.Page_Load for a clicked button
- NEW - ValidateForm bool - Wether or not this button triggers a form validation
|
| Controls.CSS |
- Now allows setting of inner markup via the Text property
|
| Controls.DecimalBox |
- NEW CLASS - dedicated Decimal input with formatting rules, min and max values and javascript pre-validation
|
| Controls.Image |
- Target property - when set to the ID of another image control will set its Path to this image's Zoom property when clicked on by a user. Works with or without javscript.
- Zoom property - URL of a full size / zoomed in version of the image, for use with Target
- Tag property - Used to store a user string alongside the image, propogated when using Target
|
| Controls.ImagePanel |
- NEW CLASS - Used to display a set of images in a controlled gallery-like manner. Derived from Panel so Scroll works and can have a global Target image ID set for its children
|
| Controls.Int32Box |
- NEW CLASS - dedicated Int32 input with formatting rules, min and max values and javascript pre-validation
|
| Controls.Panel |
- Text property used to set button text when grouped in a TabPanel
- Scroll property to show arrows for javascript scrolling of contents, shows CSS overflow scrollbars when no javascript is available
|
| Controls.RadioGroup |
- NEW CLASS - For grouping radio buttons
|
| Controls.Radio |
- NEW CLASS - Represents the HTML Radio control
|
| Controls.TabPanel |
- NEW CLASS - Automatically Groups Panel controls into a tabbable interface!
|