Pre 4.0

Cell.cs (58)
TimeItemDataConnect.cs (37)
Databind issues reported from the field; fixed

Cell.cs (57)
GridColumn.cs (49)
New method GridColumn.ReCreateColumnCellToCustomType
Enables you to Create header cells with CustomCellType; go like this
GridColumn col=gantt1.Grid.Columns.AddNew(CellType.SingleText);
The above code creates cells with SingleText fields, but a CustomCell header

NodeDataConnect.cs (67)
Null check after feedback from the field

GridColumn.cs (48)
Grid.cs (150)
OnUserDrawSortSymbol event did not expose graphics context – fixed

GanttRow.cs (61)
DrawLayerStart functionality was broken. Now works as documented

Gantt.cs (163)
New property on Gantt public int ResizeAreaSize The Active area that will react to resize events

TimeItem.cs (72)
TimeItemDataConnect.cs (36)
When turning on BlockedTimeCalculatedStop after the data was pulled from the dataset, we had omitted to fetch the Length data so the time item was rendered as Zero: Fixed.

GanttRow.cs (60)
Bug made TimeItems disappear from view when first column was scrolled off screen

GridColumns.cs (53)
GridNode.cs (72)
Clearing all columns in a Gantt with data gave drawloop exceptions. Fixed.

NonLinearTime.cs (9)
Wow, super old bug reported. When hiding all hours after noon you got an index out of bounds exception – there was a typo in the code ++ instead of —

Gantt_ASP.cs (91)
New event OnCellContentTuning: Fires when preparing the content for each grid cell. If you want to inject free html in your cell you can
do it in this cell by going like e.Content = string.Format(“<img src=\”happy.jpg\” alt=\”{0}\”/>{0}”, e.Content);

Gantt_ASP.cs (90)
Gantt_ASP has been writing the padding styling info from the CellLayouts to the wrong place. IE8 and sharepoint suffered from this so we have corrected the error.

Grid.cs (148)
Gantt.cs (162)
TimeItem.cs (71)
UserCreatedBrushes where Disposed after use. Now a parameter has been added to the event arguments: DisposeAfterUse so that developer has control of deletion.

GridColumn.cs (45)
Grid.cs (147)
new event Grid.OnUserDrawSortSymbol: Implement to override sort symbol.

GridNode.cs (71)
UserRowHeight will Invalidate row only when there is an actual change to the value

TimeItem.cs (70)
TimeItem MoveTo did not respect BlockedTime; does now

GridNode.cs (70)
Newly introduced bug fixed that showed up as error in gridnode subones in Gantt_ASP

TimeItem.cs (69)
WorkTimeCalendar.cs (11)
Calenders where not drawn at all for TimeItemStyle LineWEnd, Romb, Span or SpanWithTimeInPoint. Fixed

TimeItemDataConnect.cs (34)
If you had left the NameInDS_Length property to null you got an ugly exception when using BlockedTime settings. Fixed

DateScaler.cs (85)
In the OnBeforeScaleOrSpanChange event the DateScalerChangeKind was not set to Zoom when user zoomed Gantt_ASP. Fixed.

GridNodes.cs (56)
GridNodes: Add before init, this way events like OnCellTypeChoose will have a context to work with

GridNode.cs (69)
GanttRow.cs (59)
Bug in GridNode.Rect caused time items not to drawn if the first column was hidden. The TimeItems where drawn once the grid had been resized.

NodeDataConnect.cs (66)
Null check in teardown

GanttRow.cs (58)
Grid.cs (146)
Layer.cs (23)
NodeDataConnect.cs (65)
TimeItemDataConnect.cs (33)
Binding for time items did not correctly release event handlers on binding UnWire – gave increasing memory usage when re bounding the Gantt. Fixed

Grid.cs (145)
GridNode.cs (68)
Bug in Gantt_ASP when using IncreaseRowHeightOnCollision, having collisions, and dragging time items to lower rows – fixed.

Gantt.cs (161)
If you had multiple TimeItems selected, and start to resize one of them, it is important that the one you resize in Focused since the logic works on the Focused; this was not the case: Is now.

BoolCheck.cs (27)
Cell.cs (56)
ComboText.cs (44)
ContentEntity.cs (32)
CustomCell.cs (19)
Grid.cs (144)
GridColumn.cs (44)
MultiText.cs (41)
SingleText.cs (42)
TimeDate.cs (39)
Grid has new method UpdateDesiredSizeInColumns:
Call this to force a draw that also ask each cell for its desired size and sets the biggest value for column in the GridColumn DesiredSize

The Grid now calls UpdateDesiredSizeInColumns when user double-clicks resize-bar for columns (as Excel)

GridColumn has a new property DesiredSize that returns the desired width.

PlexityHide.GTP.WEB.vs2008.csproj (7)
2009nov release of Ajax Toolkit

Gantt_ASP.cs (88)
Strange bug that made the next controls after the Gantt_ASP get the same name as the Gantt_ASP fixed; could give the effect of a Gantt chart that did not respond to interaction events.

Gantt_ASP.cs (87)
New property DefaultExpansionState: If you create GridNodes with expansionstate true, set this to true, otherwise false
IsExpandedStatusForGridNodeInitiated: Checks if the GridNodeStatus has been set for a gridnode

Gantt_ASP.cs (86)
new Event OnNode_ClientClick_NodeKey Fired on client click on Tree expand/collapse, this event is fired before viewstate has been applied, nodes may be resorted

OnNode_ClientClick has been moved back to after sorting.

Gantt_ASP.cs (85)
OnClientSideChangesApplied Event was fired twice on Move and resize. Fixed

Gantt_ASP.cs (84)
In the OnBeforeScaleOrSpanChange event the DateScalerChangeKind was not set to Zoom when user zoomed Gantt_ASP. Fixed.

Gantt_ASP.cs (83)
PlexityHide.GTP.WEB.vs2008.csproj (6)
Bug in Gantt_ASP when using IncreaseRowHeightOnCollision, having collisions, and dragging time items to lower rows – fixed.

PlexityHideAjax.vs2008.csproj (8)
2009nov release of Ajax Toolkit

PlexityHideAjax.vs2008.csproj (7)
Bug in Gantt_ASP when using IncreaseRowHeightOnCollision, having collisions, and dragging time items to lower rows – fixed.


Latest Ajax toolkit used (May2009)

Grid.cs (143)
Bug in Grid-Text-Search for readonly cells – they did no longer clear other selections when navigating to new focus; Fixed.

NodeDataConnect.cs (64)
When a complete DataSet is cleared, sub views may contain null in their keys and an exception is thrown; Handled

DateScaler.cs (84)
Bug in datescaler made scrolling slow for FlipView=true (ScheduleMode)

TimeItemDataConnect.cs (32)
Index in event was higher that CurrencyManager.Count giving strange results in certain cases.

Gantt.cs (160)
When disposing the UpdateSubComponents could get called in ASP.NET this gave exception.Fixed.

Gantt_ASP.cs (82)
PartialCaching attribute removed from Gantt_ASP; it should make no difference on IIS7 since it was already given a 0 second caching criteria, but it fixes an issue for IIS6 when redirecting back to Gantt page from a Gantt Page (gave intermitent Gantt_ASP==null exceptions)

Gantt_ASP.cs (81)
Tree button is now VAlligned center.
New property ZIndexValueForDateScaler;This value is default 999, the DateScaler Scrollbuttons will get a Z-Index this value + 1. If you are doing stuff with popup menus you might want to tune this.

NodeDataConnect.cs (63)
Binding to EntitySet was not always successfull

GridStructure.cs (65)
In Schedule mode keydown in headers behaved strange

Gantt.cs (159)
timeItemCreate mode did not work correctly with GanttRow.TimeSpanOffset – This gave illegal datetime value exceptions

DateScaler.cs (83)
ZoomIntoResolution Check was equality when it really should be less than or equal. This could make the DateScaler display the lower resolutions. Fixed

Gantt.cs (158)
On a move operation Gantt only moved time items currently on screen. This was a bug and all selected time items are now moved together.

TimeItemLink.cs (30)
ZOrder of timeitem links bug that selected links where not lit correctly.

Gantt_ASP.cs (80)
Bug that Gantt_ASP did not respect the Gantt.DateScaler.MinSpan setting. Does now.

PlexityHide.GTP.WEB.vs2008.csproj (4)
AjaxControlToolkit, Version=3.0.20820.16598

PlexityHideAjax.vs2008.sln (5)
PlexityHideAjax.vs2008.csproj (5)
PlexityHideAjax.vs2008.sln (4)
AjaxControlToolkit, Version=3.0.20820.16598


TimeItemDataConnect.cs (30)
If the Layer was databound to a sorted dataview, sorted on a property that change (ie Start or Stop) a bug made the Start value went into the intended time item, but the Stop or Length ended up in another time item. Fixed.

LinkDataConnect.cs (9)
Identity fields are of type string, when user has int identies type conversion was needed. This is now handled automatically for the link identities

TimeItemLink.cs (29)
ZOrder draw issue fixed

NonLinearTime.cs (8)
Calendar.GetWeekOfYear since the internal week number algorithm was found flawed to weeks starting other days than sunday or monday.

Gantt.cs (157)
ZOrder draw issue fixed

TimeItem.cs (68)
TimeItemLayout.cs (26)
ShadowFrameColor added to time item layout; this was always black before and that was not always perfect ofcourse.

WorkTimeCalendar.cs (10)
A bug made Userdrawn calendar entries meant for the Datescaler to show in the TimeItemArea and vice versa. Fixed

GanttRow.cs (57)
Optimization for time item draw was wrong for userdrawn time items.

Gantt.cs (156)
and VerticalDayStripesLowestResolution properties added.

Controls the highest & lowest resolution when the vertical day stripes should be drawn (there is not much point in drawing a single day if the resolution is 10 years)
Gantt_ASP1.Gantt.VerticalDayStripesLowestResolution = NonLinearTime.TimeResolution.hours;

TimeItem.cs (67)
SpanWithTimeInPoint had an error in conflict area draw

Gantt.cs (154)
GanttRow.cs (56)
TimeItemLink.cs (28)
Extension ZIndex on TimeItemLinks:
ZIndex allows you to control if the link is drawn above a particular time item layer index or not. 0 in ZIndex will ensure the link being drawn below all time items in layer 0 and above. 1 in ZIndex will make the links go above layer 0 time items, but below layer 1 time items. 999 will put your links on top (unless you have time items in layer 999).
999 is the default value to keep backwards compability when all links were drawn on top.

public int ZIndex

TimeItem.cs (66)
Conflict area is drawn for TimeItemStyles LineWEnd and Romb

TimeItem.cs (65)
TimeItemStyle did not support drawing the conflict areas. This has now been added.

GridNode.cs (67)
GridNodes.cs (55)
NodeDataConnect.cs (62)
Datasources has a habit of sending a reset when performing a sort. In a hierarcical control this destroys expansion status and selections. We now detect bogus resets that really are sorts and take care to keep expansion and selection status

Gantt_ASP.cs (79)
warnings removed

Gantt_ASP.cs (78)
Node expansion was evaluated on un-sorted content; gave wrong results. SetSortColumn did not actually sort the content; confusing.

Gantt_ASP.cs (77)
Major updates to how sort is handled. Field reports told us that we neglected how expansion status should be handled when sorting. Major rewrites regarding sorting solved this.

PlexityHide.GTP.csproj (15)
KeymakerLogic.cs (18)
FIPS compliant key validator used; runtimekeys gave problems in FIPS environments. GTP.NET is now FIPS compliant.

NodeDataConnect.cs (61)
Applying value to cells had to match type exactly; this gave problems with ECO

DateScaler.cs (80)
Exposed the TimeToPixel and PixelToTime with double precision

ComboText.cs (43)
MultiText.cs (40)
SingleText.cs (41)
Clipboard.SetText will throw exceptions if text is empty string

Gantt.cs (153)
TimeItem.cs (64)
WorkTimeCalendar.cs (8)
New event OnCalendar_UserDraw gives developer control on when and how to render CalendarEntries.

GridNodes.cs (53)
Remove of a GridNode always forced a new topnode to be set, even if all the rootnodes was hidden. This made at least one root not visible when it was supposed to be hidden.

Gantt.cs (152)
Resize of start over overlapping CalendarEntries was wrong

NodeDataConnect.cs (60)
Added extra check to ensure index supplied by the ItemAdded event

WorkTimeCalendar.cs (7)
resize of start time over overlapping CalendarEntries was wrong. Fixed.

Gantt.cs (151)
Printing used an internal metafile. This will not work in reduced trust environments. Now the GTP.NET tests for the needed trust and avoids using the Metafile when printing in these cases.

WorkTimeCalendar.cs (6)
BlockedTime fixes; We did not handle overlapping BlockedTime CalendarEntries very well. We do now.

TimeItem.cs (63)
Blocked time bugs: Resizing should be handled as the drop date being the goal date. In order to do this we must calculate blocked time in between old date and new date and set a new length taking the blocked time into account. This logic was hazy before and sharp as a knife now.

TimeItem.cs (62)
TimeItemText.cs (21)
TimeItemTexts.cs (9)
Profiled and found some die hard objects that are now cleaned up better

NodeDataConnect.cs (59)
When printing the databindingcontext change. This showed up as a problem when printing from ASP.NET in a button click. Fixed.

Gantt_ASP.cs (76)
Sorting in web gui was supported from earlier, but there was no easy way to set the initial sorted column or sortstate. There is now; SetSortColumn/GetSortColumn was added.

DateScaler.cs (79)
Stop<=Start is impossible to draw. This could happen and caused DrawLoop exceptions. Fixed.

Gantt.cs (150)
Printing in reduced trust ran into a snag when we used a meta file. The meta file is now only used when the trust is higher.

Grid.cs (142)
GridNode.cs (66)
GridNodes.cs (52)
Problem during dispose of databound gridnodes in hierarcy could sometime give exceptions. Fixed.

Grid.cs (141)
MakeSureVisible on gridnode could end up in an eternal loop due to the fact that when two rectangles are a like, r1.Contains(r2) returns false. Fixed

DateScaler.cs (78)
Dispose of DateScaler updated

PanButton.cs (14)
Dispose of panbutton added

Grid.cs (140)
Exception on dispose in Cell.EndEdit fixed

Gantt.cs (149)
TimeItem.cs (61)
New event added to easily override TimeItem draw rectangle:

GridNode.cs (65)
NodeDataConnect.cs (58)
ComboText.cs (42)
ContentEntity.cs (31)
Grid.cs (139)
MultiText.cs (39)
SingleText.cs (40)
TimeDate.cs (38)
Bugs with rowselect and endedit fixed.
When using rowselect and in edit mode and letting the user resize a gridnode, gave EndEdit on cell 0, and not the cell that started the edit.

TimeItem.cs (60)
TimeItemLinks in Schedulemode was drawn wrong if not both ends where on screen.

LinkDataConnect.cs (8)
Fixed bug on TimeItemLinks databind; removing datasource did not clear links

GridNode.cs (64)
GridColumns.cs (52)
NodeDataConnect.cs (55)
Column reorder did not invalidate columnindeces so data bound values endded up in the wrong position
Change to databind asyncwire. This has been a pain in the arse for a long time, but using eco brought it up to really super pain, so now its fixed.

GridStructure.cs (63)
If RowSelect is true, and user started shift select by keybord without clicking in grid a null ref exception was thrown. Fixed.

Fixed problem with installation; the un-installed fails to remove installed components



NodeDataConnect.cs (54)
Problem with the whole DataSourceColumnIndex thing; Sub datasources may have the same DataSourceColumn names, but in a different location. The issue is now fixed

TimeItem.cs (59)
Loss of databound timeitemlinks; when multiple links goes to one time item, and updates are applied in a certain order, the links could be lost from display due to a loop being executed from 0 to n rather than from n to zero. Fixed.

TimeItem.cs (58)
TimeItem.Move did not respect BlockedTimeCalculatedStop setting. Fixed.

KeymakerLogic_public.cs (6)
bug in compiling source code version

GridNode.cs (63)
GridStructure.cs (62)
Setting Visible=false on many gridnodes (>3000) could give stack overflow. Fixed.

TimeItem.cs (57)
Change of TimeItemLayout did not invalidate view correctly.
BlockedTimeItem Layout changes did not invalidate view correctly.

Gantt.cs (148)
Loss of link databind; in some cases when moving a time item, keeping its identity, the internal look up list for timeitem identities used by the timeitemlinks, first added the new key for the new time item. then removed the old one, but really removing the new one. This gave the effect of one identity missing from the lookup list, and some links disappeared. Fixed.

Gantt.cs (147)
Updated comment on OnTimeItem_UserDrawBounds

TimeItemText.cs (20)
Null check before TimeItemText rendering; could give exceptions in semi destroyed Gantt

GridColumn.cs (43)
GridColumns.cs (51)
NodeDataConnect.cs (53)
Issues with slow performance with databind and many columns; it did not scale well on column-count. Fixed; scales a lot better.

Intermitent databind bug; cannot call Invoke before handle created fixed.

Gantt.cs (146)
CheckOnBeforeMove was wrongfully called inside MouseMove

Gantt_ASP.cs (75)
Gantt_ASP.cs (74)
GanttRowFromY did not give correct results on large pages. This was due a bug that the page was not set before rendering so time items on high number pages was not rendered and had uninitiated drawrects, this in turn gave wrong results when trying to find the new row. Fixed.

Gantt_ASP.cs (73)
New event OnFontResizeEvent;
The Gantt is rendered by windows forms. If you use MultiText in your cells row wrap will occure.
Row wrap will make GanttRows higher(fatter). The text in the Gantt_ASP is normal html-text.
If the html-text-font and the windows form font are not the same size (even if the have the same size set, they can be rendered differently),
you may get the effect that the html-cell is to big for the html text (leaving white space), or to small; crowding the text. In this case we offer this event to provide a calculation factor; how much the fonts differ. You can set this factor to minimize the differences as much as possible.

Grid.TreeLevelInset did not work correctly in Gantt_ASP, does now.

Vertical text alignment did not work correctly in Gantt_ASP, does now.

Text wrapping in Gantt_ASP works better in IE using IE css extension

Current AjaxToolkit release (1.202229.0 for clr20 and 3.0.20229.0 för clr35)

PlexityHideAjax.vs2008.csproj (3)
Gantt_AjaxBehavior.js (10)
Operation aborted could be seen when switching from a page having the Gantt_ASP to anotther page before the Gantt_ASP was fully loaded. This is now Fixed!

GridNodes.cs (50)
Sorting of unbinded content; was always compared as string, giving strange results on dates and numbers. Fixed.

Grid.cs (138)
If calling MakeSureVisible on a Cell, GridNode or TimeItem when the Grid or TimeItemArea was to small to fit the widget, a stack overflow occured. Fixed.

Cell.cs (55)
Grid.cs (137)
Images from imagelist in Grid was very slow due to known limitation of the ImageList component. Image is now cached so speed is increased and resources are spared.

Grid.cs (136)
Last row of grid could end up being only half-visible if the column scroller was showing. Bug; Fixed

Cell.cs (54)
GridColumn.cs (42)
New Setting to control if header rows should use the MultiText cell type or the SingleText cell type

GridColumn.cs (41)
Layout in header cells:
We confirmed a bug here; when using databind with different celltypes than SingleText the Column cell is re-created and the User set CellLayout is lost. Fixed in next service release. Work around; set CellLayouts after dataset wiring.

TimeItem.cs (56)
Fixed in BlockedTime calculation, it is now delivered and accepted by end client.

Gantt_ASP.cs (72)
The evalution of ExternalStyles was inverted! ExternalStyles=false meant true. Fixed.

Clicking zoom in, followed by zoom in should give you the same view intervall as you had before zooming. It did not. It does now.


Lots of work made for the CalendarExtension
Calendars enables you to define areas in time and visualize them in the TimeItemArea, in TimeItems and in DateScaler.
Lots of work made for the new BlockedTimeExtension
A calendar may contain spans of time where no work can be done. When putting activities inside such spans, or near such spans so that they extend into the span, the activity should be paused and continue after the span. This common use case is now solved in GTP.NET with the BlockedTimeExtension. BlockedTime enables you to assign a Calendar to a TimeItemLayout and have TimeItems extend their length if they intersect with the blocked time in the calendar.

KeymakerLogic_public.cs (5)
Bug in compiling source code version

DateScaler.cs (77)
Misspelled Intverals

Gantt.cs (144)
CheckIfStartInNoWork exposed. Needed when adding time items from code, and one wants to ensure if start is in NoWork

TimeItem.cs (54)
Two bugs in BlockedTime fixed

Gantt.cs (143)
OnTimeItemChangeRow can delete selected time item. This gave problems -> fixed

Gantt_ASP.cs (71)
When setting ExternalStyles to true the css stylesheet is NOT embedded into the rendered html. Intstead you must add an attribute to the head section like this:
<l ink href=”theganttstyles.css” type=”text/css” rel=”stylesheet” />
You will also need to create the theganttstyles.css and you can do this by calling UpdateExternalStyles with the file name of your choice.
If you leave ExternalStyles to false (default) you do not need this, but on the other hand ajax does not update the head section so under certain circumstances you can run into troubles using embedded styles.
Typical scenario for when to create to the css file:
You have decided to use external styles, this might be set in the object inspector already

You fill the Gantt with data AND you probably create some CellLayouts format grid cells
if (!File.Exists(Page.MapPath(“GanttStyle.css”))) // If you have no need for dynamic styles, the file does not need to be written every time…
This call reads the CellLayouts and create the css content, and saves the file.

PlexityHide.GTP.WEB.csproj (19)
Gantt_ASP.cs (70)
Tree expand and collapse image is now valign=top
Bug reported about dead interaction when embedding in User control handled. This is now fixed.

PlexityHideAjax.csproj (11)
Gantt_ASP Ajax now use AjaxControlToolkit v1.0.11119.20010

Gantt.cs (140)
New Gantt method RuntimeKeyHelp_Assembly()
Call this to get hints on what values to put into the registration form to get the runtimekey…

KeymakerLogic.cs (17)
Added hints for runtime keys

TimeItem.cs (51)
Unselection during destruction could give exceptions

ContentEntity.cs (30)
The rectangle the editbox goes into has been 1 pixel to thin. Fixed (Better looking grid)

DateScaler.cs (75)
Added documentation on DateScalerDrawBoxesEventArgs and some other datescaler event arguments

DateScaler.cs (74)
Calling TimeToPixel(PixelToTime(x)) gave x-1 for a lot of values. This was due to an internal rounding error. Fixed.

Layer.cs (20)
When deleting a currently selected time item the SelectionChanged event was not fired. We will now set Selected=false prior to deletion and the event will fire.

ContentEntity.cs (29)
When entering editmode on a cell having a tree button and an image the edit still used the whole cell rect. This is not very nice since the text “jumps” to the left when entering edit, then back to the right when leaving. This is now fixed.

Cell.cs (53)
Grid.cs (135)
GridColumns.cs (50)
if the last column did not reach the end of the grid it left a hole with nothing drawn. Now we use the background of the latest drawn column to cover this hole. (Better looking grid)

GridStructure.cs (61)
When navigating with arrow key left and reaching first column, the next left key will collapse grid node. And navigating right until end of row will then expand grid node. (Better behaving tree)

LinkDataConnect.cs (7)
NodeDataConnect.cs (51)
TimeItemDataConnect.cs (27)
Updates for VS2008 databind

Grid.cs (134)
ContainsListCollection now correctly returns false in ListWrapper

GridNode.cs (62)
Calling CollapseAll on the GridStructure when using databind and having unloaded subnodes did not work as expected. This was because the default behaviour when loading subnodes is to expand parent. Fixed.

TimeItem.cs (50)
GanttRow.cs (55)
If you have two timeitems that occupy the exact same draw space we optimize and draw only the first one. This became a problem since we did not verify that the two time items used the same TimeItemLayout. This is now fixed.

Gantt_ASP.cs (69)
Hints for runtime keys

Gantt_ASP.cs (68)
When placing a Gantt on a Content panel some of the callback events was knocked out. This happened because the callback identity was wrong. This was believed to be fixed but there were additional problems. Fixed! (Master page issues)

Cell.cs (52)
Grid.cs (133)
New property TreeLevelInset
This value controls the indentation that is made for each level in a tree. The default value is 13.

NodeDataConnect.cs (50)
Reports of wire exceptions while shutting down gave us some ideas that was used to update the binding code

Gantt_ASP.cs (67)
If you want to remove the grid from the gantt presentation all together use this. if you only want to hide certain columns use Gantt_ASP.Gantt.Grid.Columns[x].Hide=true;

Bug in Expanded/Collapsed state made it impossible to fold nodes

New property Gantt.Grid.TreeLevelInset used in Gantt_ASP so you can control tree indentation

The release prior to this ( had a major problem with partial update due to an unforunate correction of ClientID. Fixed.

Grid.cs (132)
New event void grid1_OnColumnOrderChanged(PlexityHide.GTP.Grid grid, ColumnOrderArgs e)
MessageBox.Show(“you moved col “+e.MovedColumnIndex+” to position “+e.NewIndex);

Grid.cs (131)
When using hidden cells and having StepCellOnTab the focused moved into the hidden cell on tab step. Fixed.

GridStructure.cs (60)
Forwardtree with hidden nodes could end up in an eternal loop. Fixed

Cell.cs (51)
Cell.cs (50)
Cells that were deleted was left behind in an internal list of selected cells, gave serious problems when calling deselection events. Fixed

Grid.cs (130)
SelectNewdataBoundRows did not clear old selections

Grid.cs (129)
MultiText.cs (38)
SingleText.cs (39)
ComboText.cs (41)
Tabbing from an active editor did not move to next cell on first tab. Fixed for SingleEdit, MultiEdit and Combobox

GridStructure.cs (59)
When Grid.MultiSelect was false, ctrl selecting still gave multiselect. Fixed

Cell.cs (49)
GridNode.cs (61)
GridNodes.cs (49)
GridStructure.cs (58)
If you called Clear on rootnodes in the OnBeforeStartEdit event and then forced a redraw with refresh we got into trouble… Fixed.

Gantt_ASP.cs (66)
When placing a Gantt on a Content panel some of the callback events was knocked out. This happened because the callback identity was wrong. Fixed!

Gantt.cs (139)
Ray Gilbert, Scenic Tours made extensions to Catch Internal errors. Changes merged. Thank you!

Gantt.cs (138)
Safeguard to allow ClearSelected even when grid nodes are about to be deleted

Grid.cs (128)
Layer.cs (19)
Gantt.cs (137)
FindTimeItemUserReference has been changed to use Object.Equal in the comparison

GridNode.cs (60)
Grid.cs (127)
New event added OnRowResizeDone Event fires when user has resized a row.
You can implement this event to do other changes that you want as a result of a row height change,
like if you want to change all other Grid rows the same way.

DateScaler.cs (73)
Fisheye move and resize did not work in ScheduleMode

GridColumn.cs (40)
Bug in CurrentSortState gave rt-errors

NodeDataConnect.cs (49)
Security exception handled

Gantt_ASP.cs (65)
While rendering we create a temporary image the size of the gantt.
If this property is false we use a Bitmap, but when producing really large Gantts
that can give hard-to-handle large memory spikes (Widht*Height*3) (we have seen IIS choking from this).
To avoid these spikes you can set this property to true and we will use a MetaFile instead.
The problem with using a metafile is that it will require FullTrust from your IIS server since
the MetaFile handling in .NET partly relies on unmanaged code.

GridColumn.cs (39)
New property
Current sort state of the column;0=no visible sort widget, 1=ascending, 2=descending Setting this will not perform the actual sort, it will only change the shown widget. Call GridNodes.Sort to perform the actual sort.
public int CurrentSortState

Gantt_ASP.cs (64)
Gantt.cs (136)
ClientSideTimeItemCreateMode has been added, allowing for easy client side drag-create of new time items in Ajax Gantt.

Gantt_ASP.cs (64)
New Event added
Fires when preparing the html for each grid cell. You can implement to inject div attributes on a cell.
Can be used to implement tooltips or cell events.
public event CellDivAttributesStringEvent OnCellDivAttributesString;

Gantt_ASP.cs (63)
Added event:
Fired when the component needs an url to an image held as a resource.
Ovveride this to give your own sorting icons, or tree fold/unfold icons, or zoom buttons etc
public event GetResourceEvent OnGetResource;

Fixed problems with grid sorting, paging and TimeItemCreate combination

Gantt_ASP.cs (60)
ClientSideTimeItemCreateMode has been added, allowing for easy client side drag-create of new time items in Ajax Gantt.
Grid Sorting that is transparent to WinForms GridSorting has been implmemented in Ajax Gantt

Gantt_AjaxBehavior.js (9)
Gantt_AjaxExtender.cs (7)
ClientSideTimeItemCreateMode has been added, allowing for easy client side drag-create of new time items in Ajax Gantt.

Gantt.cs (135)
erlier bug fix, introduced new bug that OnTimeItem_Hoover gave e.TimeItem==null if MouseMoveKind==none

TimeItemDataConnect.cs (26)
Reported issue with databound timeitems. Code revised and made more robust.

TimeItem.cs (49)
Issue in calculating the timeItemRects in extremly high resolutions showed up for TimeItemLinks; extremly zoomed links were drawn backwards. Fixed.

Gantt.cs (134)
A mistake when accessing an embedded resource gave errors for inherited Gantt’s. Fixed

Gantt.cs (133)
Bug in MouseMove made it very hard to effectivly limit movements of time items(for example to only allow movement in y direction ).

GridNodes.cs (48)
When calling Remove on a GridNode that is focused or TopNode we always try to find a good replacement node. A bug was discovered that showed that we could grab a replacement node that was set to Visible=false, and in the process make it Visible=true. Fixed. We first look upwards for unhidden nodes, then downwards, then parent.

TimeItemText.cs (19)
More defensive checks to find reported problem

Gantt_ASP.cs (59)
New property added PagingLinksParagraphAttributes. This property lets you inject a style or layout attribute on the pagelinks paragraph.
The default value for this property is align=’center’.

Gantt_ASP.cs (58)
clientSideJavaScript_TimeItemInit added to Ajax scripts:

/// <summary>
/// In this property you can add multiple rows of valid JavaScript code, this code will be injected into a function that looks like this:
/// function Gantt_ASPClientSideImp_TimeItemInit(aID,aClientTimeItem,aImgElement)
/// {
/// // To add code here set the static field Gantt_ASP.ClientSideImp_TimeItemInit
/// // Your code ends upp here
/// }
/// You might want to do elaborate tooltips by grabbing data from aClientTimeItem.UserString
/// </summary>
public static string ClientSideJavaScript_TimeItemInit

Gantt_ASP.cs (57)
Added two properties ClientSideJavaScript_TimeItemClick and ClientSideJavaScript_GanttRowClick to allow for easy inject of client side javascript. The properties are explained like this:

In this property you can add multiple rows of valid JavaScript code, this code will be injected into a function that looks like this:
function Gantt_ASPClientSideImp_TimeItemClick(aID,aClientTimeItem,button,continueWithPostBack
// To add code here set the static field Gantt_ASP.ClientSideJavaScript_TimeItemClick
// Your code ends upp here
return continueWithPostBack;
You might want to pop up a window, and if you might want to supress the postback (add continueWithPostBack=false;)

Gantt_ASP.cs (56)
Several changes to clientside scripts. Quote-sign is consitantly used in html attributes. Yet some XHTML compliant stuff. OnAreaAttributes bugs fixed so that ClientSideTimeItems can have tooltips etc

Gantt_AjaxBehavior.js (8)
Gantt_AjaxExtender.cs (6)
clientSideJavaScript_TimeItemInit added to Ajax scripts:

/// <summary>
/// In this property you can add multiple rows of valid JavaScript code, this code will be injected into a function that looks like this:
/// function Gantt_ASPClientSideImp_TimeItemInit(aID,aClientTimeItem,aImgElement)
/// {
/// // To add code here set the static field Gantt_ASP.ClientSideImp_TimeItemInit
/// // Your code ends upp here
/// }
/// You might want to do elaborate tooltips by grabbing data from aClientTimeItem.UserString
/// </summary>
public static string ClientSideJavaScript_TimeItemInit

Gantt_AjaxBehavior.js (7)
Several changes to clientside scripts. Quote-sign is consitantly used in html attributes. Yet some XHTML compliant stuff. OnAreaAttributes bugs fixed so that ClientSideTimeItems can have tooltips etc

GridStructure.cs (57)
Gantt.cs (132)
The comment for the OnUserDrawLink was plain evil, and has been changed to this:
Fired when link with drawstyle=user need to be drawn.
There are two passes to link drawing. First there is the normal draw, the e.G is assigned,and you simply draw the Graphics object supplied. Second there is the selection region pass, this is recongnised by e.G==null and e.BoundingRegion is assigned. Now you can fill the region that is used to decide if a click is on a link or not.

TimeItemLink.cs (27)
LinkDrawing was not robust enough and users using UserDrawnLinks ran into trouble. Fixed.

Grid.cs (126)
GridNode.cs (59)
When resizing a row to very small beyond the rowlimit, then making it bigger again– the cursor “moves” slowly to the top (it does not stay on the ruler between the rows!). Bug fixed.

TimeItemTextLayout.cs (15)
Clone implemented for TimeItemTextLayout

TimeItemLink.cs (26)
Sneaky Bug, when the users deletes the link in OnSelectionchange the SelectedLink became null unexpectadly. Fixed

Cell.cs (48)
While beginning cell content editing by pressing a key and the first character pressed is backspace a strange character (backspace) is inserted into the the text field. Fixed

GridStructure.cs (56)
ContextMenuStrip on grid issue, When the memu pops up the click should not issue de-selections.

Gantt.cs (131)
TimeItem.cs (48)
HandleOnConflictArea_Update internal change

TimeItemLink.cs (25)
Fixed problem that showed up in Ajax post back; a dataset tried to update the link collection that was valid on earlier postback. This was fixed by nulling out the TimeItemLink Datasource when taking down the Gantt (CleanForFree).

Cell.cs (47)
Bug in new header style MS look corrected

PlexityHide.GTP.WEB.csproj (17)
Gantt_ASP.cs (55)
Fixed an error of double postbacks when clicking GanttRow. This gave strange effects like link selections not showing correctly

PlexityHide.GTP.WEB.csproj (16)
Gantt_ASP.cs (54)
Gantt_ASP.cs (53)
Expanded/Collapsed state is stored in ViewState. So in order to change the client view it is not enough to set the GridNode.Expanded state. You must instead use Gantt_ASP.Get/SetExpandedStatusForGridNode

PlexityHideAjax.csproj (10)
AjaxControlLibrary (9)
AjaxControlLibrary (8)
PlexityHideAjax.csproj (9)
AjaxControlLibrary (7)
AjaxControlLibrary (6)
AjaxControlToolkit.pdb (2)
AjaxControlToolkit.dll (2)
Gantt_AjaxBehavior.js (6)
Gantt_AjaxExtender.cs (5)
Bug that we gave integer numbers as strings to json for time item download to client. Discovered and fixed when upgrading to version 1.0.10606.0 of the Ajax Control Toolkit
Cell.cs (46)
GridColumns.cs (49)
We extended the gridColumns with a HeaderType property:
Values for grid header rendering
/// Like the explorer grid etc
/// Old school, plain cell and gradient

Gantt.cs (130)
In Version we made a mistake and moved the OnTimeItem_ChangeRow event to fire before OnTimeItem_Move. This proved to be a bad decision and it is reverted now. The OnTimeItem_Move event has been extended to give you information about row change to handle the same issues that we solved with the original change in the first place.

KeymakerLogic.cs (16)
Bug in RT-Keys fixed

Gantt.cs (129)
ChangeRow event was moved up before TimeItemMove event. It is better for users to first handle a changed row and then the time movement because then the time move is on the correct row

TimeItemLayout.cs (23)
TimeItemTextLayout.cs (14)
Bug in autogenerated design code for TimeItemLayouts and TimeItemTexts. Gave compilation errors in VB.NET and merly strange code in c#. Fixed

Cell.cs (45)
Serious flaw that double pressing esc in grid cell cleared the value
TimeItem.cs (47)
TimeItemLayout.cs (22)
Added new property for TimeItemLayout DrawDetailsEvenForVerySmallTimeItems
If a time item is very small (less or equal to two pixels high, or two pixels wide ) the details of the time item may not be visible on screen. So if the details are not visible we might as well skip drawing them. We will skip drawing small time item details, like TimeItemTexts etc if this property is true (default).
Instead we just draw a rectangle filled with the solid background color.

LicenseProvider.cs (22)
Cell.cs (44)
GridNode.cs (58)
RowSelect and inplace editing was messed up. When leaving editmode by mouse clicking the value could end up in the wrong cell. Fixed

Gantt_ASP.cs (52)
New event OnGanttRow_ClientClick that makes it easy to catch client side GanttRow clicks. Gives you X,Y that is easily translatable to a Datetime.
Bug that two Gantts on the same form came in conflict for some events; Fixed

Gantt.cs (128)
GetSelectedTimeItems Added an optional parameter called onlyCurrentlyOnScreen
Returns currently selected time items, if OnlyCurrentlyOnScreen=true time items owned by gridnodes currently on screen are returned

public TimeItem[] GetSelectedTimeItems(bool onlyCurrentlyOnScreen)

DateScaler.cs (72)
When displaying hours in the datescaler upperband you have a choice to display the hour text above the 00 minutes mark and thus giving box-lines at 30 minutes to and 30 minutes after the hour. OR you can display the hour text centred in the hour that gives an hour text just above 30 minutes past the hour, and hence the box-lines at 00 minutes.
This choice exists for all the displayed resolutions less than a day.
Since we have clients arguing for both approaches being correct we have implemented this option.

public bool TextCentredInIntervallLessThanDay

LicenseProvider.cs (21)
Registration bug fixed

TimeItemLink.cs (24)
Selectable links from Gantt_ASP Ajax

BuildScript version

GridStructure.cs (55)
Grid.cs (125)
MakeSureVisible has been updated. If you called MakeSureVisible on gridnodes just added the grid would scroll no mather what. This is fixed. The Grid only scrolls if necessary. This bug was introduced in the last service release.

ComboText.cs (40)
MultiText.cs (37)
SingleText.cs (38)
TimeDate.cs (37)
Clipboard Paste to a cell that was readonly gave exceptions. Fixed

Gantt.cs (127)
KeymakerLogic.cs (15)

KeymakerLogic.cs (14)
Problem with runtimekey registration if com-wrapped and used by unsafe host. Fixed

Grid.cs (124)
When sorting columns in unbinded mode the OnUnbindedSort event was called even if a list was empty. If you had a lot of GridNodes all these ChildNodes list would be sent to the OnUnBindedSort even if it was empty. This took some time and is now removed -> faster sort.

Grid.cs (123)
MakeSureVisible(GridNode gn) corrected. It could skip scolling for two nodes at the bottom before.

ContentEntity.cs (28)
DeInit_ForHangingPreInit, When the event BeforeEditEvent returned allowed==false the edit was deinited the wrong way leaving the cell empty under certain circumstances.

DeInit_ForHangingPreInit, When the event BeforeEditEvent returned allowed==false the edit was deinited the wrong way leaving the cell empty under certain circumstances.

GridNode.cs (57)
Bug RowSelected was browsable and gave null ref exception in design time

TimeItemDataConnect.cs (25)
Property descriptor ReadOnly is checked and used as default value for timeItem datasource updates

KeymakerLogic.cs (12)
Runtime keys are valid even if the extension is left out

LicenseProvider.cs (20)
clr11 fix

Gantt.cs (126)
KeymakerLogic.cs (10)
TimeItemLink.cs (23)
TimeItemLink.cs (22)
Bug in PerformLinkActions made Gantt hang under certain circumstances

AssemblyInfo.cs (41)
GridNode.cs (56)
RowSelect scrolled in x direction when rows did not fit the screen

Gantt.cs (125)
Typo on runtime keys page
Unmanaged code could not register runtime key

EvalDialog.cs (13)
Grid.cs (122)
DateScaler.cs (70)
Gantt.cs (124)
LicenseProvider.cs (19)
LicenseProvider.cs (18)
LicenseProvider.cs (17)
KeymakerLogic.cs (9)
Gantt.cs (123)
EvalDialog.cs (12)
EvalDialog.resx (5)
LicenseProvider.cs (16)
AssemblyInfo.cs (40)
KeymakerLogic.cs (8)
GTP.NET.sln (23)
DateScaler.cs (69)
Multiple changes to allow for better Hour view in schedulmode

Gantt.cs (122)
East resize is favoured before west resize on small time items

GanttRow.cs (54)
TimeItem.cs (46)
PanButton.cs (13)
PlexityHide.GTP.csproj (12)
DateScaler.cs (68)
DateScaler FlipView buttons are turned the right way

Gantt.cs (121)
GanttRow.cs (53)
TimeItem.cs (45)
TimeSpanOffset Added to GridRows to allow for each row to have an individual time offset compared to the DateScale

Grid.cs (121)
LinkDataConnect.cs (6)
NodeDataConnect.cs (48)
TimeItemDataConnect.cs (24)
TimeItemLink.cs (21)
Gantt.cs (120)
Changes to OnEach-logic (pre-release)

TimeItem.cs (44)
TimeItemLayout.cs (21)
Added ExtraAddOnDraw on TimeItemLayout
When ExtraAddOnDraw is true, the time item will be drawn with the TimeItemStyle, but then the OnTimeItem_UserDraw will also be called so that you can do some additional add on drawing

TimeItem.cs (43)
Gave null access for ListItemWhenDataBound if not DataBound

GridNode.cs (55)
Added SetCellLayoutOnAll on GridNode

Grid.cs (120)
Added FocusedCell Returns or sets the cell currently in focus, alway the last one selected. Same as Grid.GridStructure.FocusedCell

Gantt.cs (119)
Better default dates

Cell.cs (43)
Added GridNode property to cell, does the same thing as the Node property

TimeItemLink.cs (20)

TimeItem.cs (42)
Better error handling when accessing ListItemWhenDataBound on timeitems

NodeDataConnect.cs (47)
Fixed problem of raising condition with databind from designer and slow starting DataSets

GridStructure.cs (54)
Fixed newly introduced bug with FocusedCell infinite loop

Grid.cs (119)

Gantt.cs (118)
Ability to assign unique contextmenustrip to the different parts of the Gantt

Added events to help with complex databind: OnEachListItemWhenDataBound_GridNode, OnEachListItemWhenDataBound_TimeItemLink, OnEachListItemWhenDataBound_TimeItem

Cell.cs (42)
Grid.cs (118)
GridNodes.cs (47)
GridStructure.cs (53)
New event added on grid to track and control FocusedCell changes

TimeItemText.cs (18)
Profiling showed that iterating an imageList is UGLY-slow we compensate for it in TimeItemTextDraw

TimeItem.cs (41)
Drawing optimization

TimeItemText.cs (17)
Draw optimizations

Cell.cs (41)
ImageMapLogic.cs (3)

GanttRow.cs (52)
TimeItem draw updates to optimize many (15000+) small time items on one row

ImageMapLogic.cs (2)
GTP.NET.CLR20 (77)
Gantt.cs (116)
TimeItem.cs (40)
New event to catch any change to Start and Stop properties of time item:
public event TimeItemEvent OnTimeItem_StartChange;
public event TimeItemEvent OnTimeItem_StopChange;

Fires when the property Start of a time item is about to change value.
This event is fired even if the change is made from code (unlike OnTimeItem_BeforeMove, OnTimeItem_AfterMove).
Active properties in the TimeItemEventArgs for this event are:
TimeItemPropertyChange_NewValue ; the value about to be set
TimeItem ; the time item affected
Allow ; set it to false to avoid applying the change

SingleText.cs (37)
OnBeforeEdit problems with EditBox being null fixed.
Strange problem with second char being eaten when using arrows to leave previous edit.

TimeItemLink.cs (19)
DrawCommonLinks also works for ZStyle links

GridColumn.cs (38)
Gantt.cs (115)

TimeItemDataConnect.cs (23)
LinkDataConnect.cs (5)
Grid.cs (117)
LicenseProvider.cs (15)
Gantt.cs (114)
CLR11 compatible

LinkDataConnect.cs (4)
GridNodes.cs (46)

TimeItemDataConnect.cs (22)
Now checks if data is a string that can be parsed as a DateTime. Easier binding to xml.

TimeItem.cs (39)
Conflict areas was not drawn on time items with an offset.

NodeDataConnect.cs (46)
When parent of gantt is null no binding context can be referensed. Bugg that is fixed by a dummy invisble form.

Gantt.cs (113)
Refactoring when implement Client time items in Gantt_ASP

GanttRow.cs (51)
Fixed bug that FixedSizeUse-timeitems uses the un-updated TimeItem.Stop in collisiondetection.

Gantt.cs (112)
Reported bug fixed; Selected time items was not properly un-selected by ClearSelected if they was above the current TopNode of the grid

GridNodes.cs (45)
Layer.cs (18)
LinkDataConnect.cs (3)
NodeDataConnect.cs (45)
TimeItem.cs (38)
TimeItemDataConnect.cs (21)
TimeItemLink.cs (18)
Grid.cs (116)
GridNode.cs (54)
Gantt.cs (111)
GanttRow.cs (50)
DataSources now handle IList and IListSources on the same property making design time behaviour more understandable

GridNode.cs (53)
GridNodes.cs (44)
TimeItem.cs (37)
Deleting of cells and time items from within fired events showed problems that was fixed

AssemblyInfo.cs (38)
TimeItem.cs (36)
Delete of time items in the OnSelectionChanged event gave AccVio

ComboText.cs (39)
Grid.cs (115)
ModDateTimePicker.cs (8)
MultiText.cs (36)
TimeDate.cs (36)
More security exceptions that show up in internet trust zone handled.

Gantt.cs (110)
When the gantt rows has IncreaseRowHeightOnCollision set, the drawing of the GanttRows may change the height of the gridNodes
If that is the case the print will be wrong since the gridnodes are drawn first. Fixed…

Cell.cs (40)
Grid.cs (114)
OffscreenDraw.cs (51)
Obscure hard to repeat bugs found in MakeSureVisible functionality fixed

GridStructure.cs (52)
Mystic error with multiple right clicks in same cell could give focus change

Grid.cs (113)
Resize of column head triggered Sort events. Wrong. Fixed.

Grid.cs (112)
Strange drawbug in grid and MakeSureVisible combined with datasource reset fixed

GridStructure.cs (51)
SlideRight problem in MakeSureVisible

TimeItem.cs (35)
Bug that conflict areas could give drawloop exception when zooming deep

Gantt.cs (109)
GridNode.cs (52)
GridStructure.cs (50)
NodeDataConnect.cs (44)
Databound bugs when selection NewDataBoundRows

GridNode.cs (51)

Version of the GTP.NET is now released.

Version highlights:

Now the GTP.NET fully supports Microsoft Visual Studio 2005, Microsoft Visual Studio 2003, Borland Developer Studio 2005 and Borland Developer Studio 2006.

Deeper zoom

now you can zoom down to milliseconds (you need this when tracking satellites )


to help users resize and move with precision

Copy and cut

from selected grid cells

Gantt_ASP behaves better

Memory handling is revised


for all users that need precise information about current time item conflicts (much more detailed handling than collisionDetection)

ImageIndex of timeItemTextLayout

now allows for easy placement of multiple icons on a TimeItem, with or without an associated text


to easily catch new rows from dataset

Version of the GTP.NET is now released.

Version highlights:


You probably will not believe it, but flip the whole Gantt into a Schedule, grabbing the first column and making it into an header with only one method call…


Let end user Select and re-assign links with the mouse


Link actions are rules that will evaluate when the target changes. Choose to set automatic actions on links, like LinkActionFollow, LinkActionNeverPass or to trigger an event whenever the time items are touched


Enables you to use link actions between time items, without a visible link (good for progressbars with linkActionFollow)

Print Extensions

ScheduleMode and Multi Page Print divided on both X and Y axis now supported


Method call MakeSureVisible on TimeItem,Cell and GridNode, common request from developers


Easily allow user to add a new time item by clicking and dragging by setting this new MouseMode

Gantt_ASP – Paging

Gantt_ASP – Paging, to break up data (rows) over many pages with numbered page links in the bottom


UserDrawLinks – Draw your own links

Improved Link rendering

Improved Link rendering – links avoid running thru target and start

Grid Row resize

Grid Rowresize – end user row resize

Improved Collision Detection

Better performance on large volumes

GridNode filter

GridNodes can be hidden from view while they still are in the databound list.

Month day numbers

DateScaler – Month day numbers instead of week presentations is now an option

New help file structure

More in tune with Visual Studio help

VB.NET samples

All our C# samples now has a VB.NET equivalent

F1 help integration in VS

Just press F1 and found out detailed info and samples on classes in the plexityHide.GTP namespace

If you own a Source Code license and want updated source at this time please email your registration name to support.

Download updated MSI’s.

Complete release notes:

Leave a Reply