AxpDataGrid for ASP.NET

A database enabled Grid and Form component for ASP.NET

© Axezz, Oslo Norway 2003-2008

http://www.axezz.com/axpdatagrid

Document date : 2008-09-27
Current Version : 2.9
2.9.6.3 .NET 2.0 Assembly Version : 2.9.6.3 (2008-09-19)

For .NET 1.1 the latest AxpDataGrid version is 2.9.5.4 and differs slightly from the .NET 2.0 version
.NET 1.1 Assembly Version : 2.9.5.4 (2007-09-27)

Installation and use

Requirements

AxpDataGrid requires .NET FrameWork 1.1 or 2.0.

Please note that there are separate versions for .NET 1.1 and 2.0.
The webcontrol assembly file, AxpDBNet.DLL is located in the subdirectory NET11 and NET20 of the zipped distribution file.

Enable AxpDataGrid in your ASP.NET application
  1. Copy the AxpDBNet.dll file to the bin directory of your application. (Visual Studio does this automatically. See next section.)
  2. Make sure to add a reference to AxpDBNet.dll in your project. (Visual Studio does this automatically. See next section.)
  3. For licensed versions, copy the Axezz.WebControls.AxpDataGrid.lic file to the bin directory of the application. (If you do not have a bin folder below the root of your application, create the folder manually.)
Visual Studio 2003/2005 integration
  1. Open Visual Studio.NET and select the Tools->Add/Remove Toolbox Items...
    Alternatively right click the tool-box to active the pop-up menu to Add Toolbox Items.
    Click the Browse... button, navigate to the location where you unzipped the AxpDBNetDistribute.zip and select NET11\AxpDBNet.dll for .NET Framework version 1.1, or NET20\AxpDBNet.dll for .NET 2.0 version).

    You can now drag and drop AxpDataGrid from the Toolbox in Visual Studio onto your page, just like any other WebControl.
  2. Visual Studio Help Collection Integration
    • The Axezz help collection contains documentation for the AxpDataGrid and AlbumOnNet WebControls.
    • It will enable dynamic help in Visual Studio, and has a table of content that will appear inside your Visual Studio MSDN Help Collection.
    1. Open the Doc\VisualStudioHelpCollection folder
    2. Run Register.bat
    3. Start Visual Studio Help or the Visual Studio IDE
    4. Wait for the Help system to reindex its collection
    5. The Axezz help system should now be available in the Table of Content and as integrated Dynamic Help in Visual Studio.
Other documentation Microsoft ASP.NET Web Matrix (from www.asp.net) integration
  1. Always create a proper web application when using AxpDataGrid (E.g. using Internet Service Manager)
    See also this article.
  2. Place the AxpDBNet.dll in the bin directory of your application. (Create the directory manually if it does not exist)
Get the Visual Studio Sample project up and running
  1. Locate the zipped sample corresponding to your environment:

    Visual Studio 7.1 (2003), asp.net 1.1, VB Solution : AxpDbNetVBSample.zip
    Visual Studio 7.1 (2003), asp.net 1.1, C# Solution : AxpDbNetCSSample.zip

    Visual Studio 8 (2005), asp.net 2.0, VB Solution : AxpDbNetVB2005Sample.zip
    Visual Studio 8 (2005), asp.net 2.0, C# Solution : AxpDbNetCS2005Sample.zip
  2. Unzip the content to your localhost web root directory.
  3. Create a virtual directory for the project root using Internet Service Manager and give it the same name as the project directory (e.g. AxpDBNetVBSample).
  4. Point your browser to the newly created virtual directory (e.g. http://localhost/AxpDbNetVBSample)
  5. The index page of the sample application should now be visible.
  6. Follow the instruction on the index page.
    The Sample project is configured to run against the Northwind Access Database and you will need to have a copy of that db file or a standard installation of MS SQL Server to run the samples. Download here if needed : http://office.microsoft.com/downloads/2000/Nwind2K.aspx The connection string is set in the web.config file and can be changed to a MS SQL Server connection if needed.
How to enable the Skins (Navigation buttons and Stylesheets)

AxpDataGrid is delivered with a set of graphical images and stylesheets (CSS files). These files are found in the Sample applications and in the Skins folder. Copy the the stylesheets and graphic files to your application or to a globally available URL.

Where are the stylesheets and graphical buttons?

The skin files are placed in the Skins folder and also in the Sample applications
The graphical buttons can be found in the folder "gfx".
The stylesheets can be found in the folder "css".

Samples 4 and 5 shows how to change the skin. (Sample 5 also has a skin browser)

Graphical elements (Buttons)

The location of the button directory (gfx) to use on your site is set with the property ImageDir. The default value is "../gfx/" and will work fine if the gfx folder and the folder structure of your application is structured as directories with a single node root and all the aspx files one directory level below the root. Otherwise you must set the ImageDir property to a specific URL on all AxpDataGrid instances.

To set the style sheet, you must set a standard html style link in the html head part of the page.
E.g.:
<head>
....
<LINK href="http://localhost/yourpath/css/AxpStyleWindowsGrid.css" rel=stylesheet>
....
</head>

Notes.

Some of the style sheets use relative sizing notation (em). This can be changed to absolute sizing (px or pt), but you will need to modify the size itself.

The Sample application pages have two style sheets to make sure that the relative sizing will work and too set general page style. See the aspx source for more details about this.

Kickstart on AxpDataGrid usage


Example 1 : Simple database query

In these examples the aspx page is placed in the application root and the skin files are placed in sub directories directly below the root. No code behind is used in this example.

<%@ Page Language="vb" AutoEventWireup="false"%>
<%@ Register TagPrefix="axp" Namespace="Axezz.WebControls" Assembly="AxpDBNet" %>
<html>
  <head>
    <link href="css/AxpStyleWindowsGrid.css" rel="stylesheet" >
  </head>
<body>
<form id="Form1" method="post" runat="server">
  <axp:axpdatagrid Runat="Server" ID="AxpDataGrid1"
    ConnectionString="Provider=sqloledb;Data source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"
    SQL="Select * From Products"
    DisplayNavBar="both"
    ImageDir="gfx/"></axp:axpdatagrid>

</form>
</body>
</html>

Example 2 : Enable data editing, Row rollover effect and Row click action

<axp:axpdatagrid Runat="Server" ID="AxpDataGrid1"
  ConnectionString="Provider=sqloledb;Data source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"
  RowClickAction="openform"
  RowRollOverEffect="True"
  EditNewPKStatement="autoincrement"
  DisplayNavBar="both"
  EditPrimaryKeys="ProductId"
  EditOptions="ALL"
  SQL="Select * From Products"
  DeleteSQL="Delete From Products"
  ImageDir="gfx/"></axp:axpdatagrid>


Please make sure to get the Sample application up and running and inspect the code for more elaborate examples!


Version History

Version 2.9

2.9.6.3 .NET 2.0 Assembly Version : 2.9.6.3 (2008-09-19)
.NET 1.1 Assembly Version : Not supported

  • Fixed some issues with string primary keys containing apostrophes or quotes.
.NET 1.1 Build 2.9.5.4 .NET 1.1 Assembly Version : 2.9.5.4 (2007-09-27)

  • Fixed some issues with string primary keys containing apostrophes or quotes.
2.9.6.2 .NET 2.0 Assembly Version : 2.9.6.2 (2008-03-12)
.NET 1.1 Assembly Version : Not supported

  • Fix. The url encoding for postback url containing primary keys has been altered.
2.9.6.1 .NET 2.0 Assembly Version : 2.9.6.1 (2007-11-14)
.NET 1.1 Assembly Version : Not supported

  • Fix. The ExcelClick event was not raised when the grid was in edit mode.
2.9.6.0 .NET 2.0 Assembly Version : 2.9.6.0 (2007-10-04)
.NET 1.1 Assembly Version : Not supported

  • Excel export now works when grid is placed inside a Microsoft Ajax UpdatePanel
  • Fixed some minor none std Html code.
2.9.5.2
Samples 8b, 9b ,27b added. Samples 15,16 and 17 altered.

.NET 1.1 Assembly Version : 2.9.5.2 (2007-04-13)
.NET 2.0 Assembly Version : 2.9.5.2 (2007-04-13)

  • Fix. Excel export failed in Form Edit mode in some circumstances using manual databinding and an "external datasource", i.e. not using the Sql properties of the grid.

.NET 1.1 Assembly Version : 2.9.5.1 (2007-03-26)
.NET 2.0 Assembly Version : 2.9.5.1 (2007-03-26)

  • Fixed a bug involving setting the OrderByFields and OrderByDesc properties in code, especially late in the page execution cycle, and in combination with ClearState=true.
  • Fix. Setting some form properties (e.g. FormFieldsShow) did not have any effect if the datasource (e.g. using a DataTable or DataView) was set late in the page execution cycle.
2.9.5.0
.NET 1.1 Assembly Version : 2.9.5.0 (2007-03-08)
.NET 2.0 Assembly Version : 2.9.5.0 (2007-03-08)

  • The IE implementation of the Rich Text Editor has been rewritten somewhat to avoid new security settings in IE7. The editor is no longer implemented as a "scriptlet".
2.9.4.1
.NET 1.1 Assembly Version : 2.9.4.1 (2007-02-27)
.NET 2.0 Assembly Version : 2.9.4.1 (2007-02-27)

  • Fix. The RowClickEventArgs caused an internal error if the DataSource was set at a late stage during page processing.
2.9.4.0
.NET 1.1 Assembly Version : 2.9.4.0 (2006-12-05)
.NET 2.0 Assembly Version : 2.9.4.0 (2006-12-05)

  • The RowClickAction property can now be set to selectrow. The user can then select the row, and the new event SelectRowClick is raised. The event argument can be cast to the type RowClickEventArgs and the RowClickEventArgs.PrimaryKeyValues property contains the primary key value of the data row, comma separated for concatenated keys.
    Private Sub AxpDataGrid1_SelectRowClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxpDataGrid1.SelectRowClick
      Dim primaryKeys As String = CType(e, Axezz.WebControls.RowClickEventArgs).PrimaryKeyValues
    End Sub
    

    Note The EditPrimaryKeys must be set when RowClickAction=selectrow.

    A new style sheet rule has been added to all of the supplied CSS files:
    /* Data Grid Selected Row */
    TR.AXDBTableTRselected
    {
    	background-color: #ffcc66;
    	cursor: pointer;
    }
  • New Data Edit property TreatEmptyStringAsNull default True.
    Set to False if empty input string fields should update the data source with an Empty String. Default is True which updates the data with a DbNull value.
  • New Data Edit property TrimInputStringValues default False.
    Set to True if input fields should be automatically trimmed. Default is False where no trimming is peformed.
  • The Excel button will now perform a standard asp.net postback and the new ExcelExportClick event is raised. This allows for more detailed control of the Excel export.

    Example:
    Private Sub AxpDataGrid1_ExcelExportClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxpDataGrid1.ExcelExportClick
      AxpDataGrid1.SQL = "SELECT * FROM CUSTOMERS" ' alter query
      AxpDataGrid1.GridFieldsHide = "1,4,5" ' Hide some columns
    End Sub
    
  • Fix. Concatenated primary keys in the UpdateRecordEventArgs.PrimaryKeyValues erronously contained an internal separator string (#axpc#). They are now separated by commas.
2.9.3.0
.NET 1.1 Assembly Version : 2.9.3.0 (2006-08-07)
.NET 2.0 Assembly Version : 2.9.3.0 (2006-08-07)

  • Minor Fix that avoids duplicate orderby indicators when column orders are moved (using manual external methods)
2.9.2.0
.NET 1.1 Assembly Version : 2.9.2.0 (2006-04-26)
.NET 2.0 Assembly Version : 2.9.2.0 (2006-04-26)

  • Fix. The grid now supports the SqlServer bigint datatype.
  • Fix. The grid now differentiates and verifies the SqlServer bigint, int, smallint, tinyint datatypes.
2.9.1.0
.NET 1.1 Assembly Version : 2.9.1.0 (2006-02-15)
.NET 2.0 Assembly Version : 2.9.1.0 (2006-02-15)

  • Fix. Clicking Copy button after adding a new record did not use the newly inserted record as basis for the record presented in the edit form.
2.9.0.9
.NET 1.1 Assembly Version : 2.9.0.9 (2005-11-14)
.NET 2.0 Assembly Version : 2.9.0.9 (2005-11-14)

  • Support for Visual Studio 2005 / asp.net 2.0. VB and C# Sample Solutions for VS 2005 added.
  • Style sheets for asp.net 2.0 samples modified (all font settings using em notation has been removed)
  • Using the SQL Server 2005 OleDb provider name SQLNCLI will now be recognized by the grid.
  • Fix. If data validation failed, quotes in input fields was not replaced with the Html quote character, causing rendering and update problems.
  • Fix. The Copy button was enabled if an insert failed.
  • Removed db schema table index read that could be costly on Oracle databases.
  • Enabled navigation bar in Form Mode for data edit when edit fields was persisted.
  • Data entered by user in edit mode are now persisted when a Page Postback does not originate from AxpDataGrid.
  • If the grid was in Form Add mode and a general Page Postback occured, the grid would go to Form Edit mode. It will now stay in Add mode.
  • CloseClick event added. Note that ListClick is fired instead of CloseClick if there is no Form View mode.
  • Fixed an error in form view related to an empty record set.
  • Text strings containing spaces only was trimmed when retrieved from the datasource and presented in the Edit Form.
  • New property DataColumn.SortExpression As String.
    Example:
    				
    AxpDataGrid1.SQL="Select '' As MyCustomColumn, Products.* From Products"
    				
    Private Sub AxpDataGrid1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxpDataGrid1.Load
      If Not AxpDataGrid1.GridColumns("MyCustomColumn") Is Nothing Then
        AxpDataGrid1.GridColumns("MyCustomColumn").SortExpression = "SupplierID"
        For i As Integer = 0 To AxpDataGrid1.CurrentDataView.Count - 1
          Dim val As Integer = Integer.Parse(AxpDataGrid1.CurrentDataView(i)("SupplierID").ToString())
          If val > 2 Then
            AxpDataGrid1.CurrentDataView(i)("MyCustomColumn") = String.Format("<span style=""color:red"">{0}</span>", val)
          Else
            AxpDataGrid1.CurrentDataView(i)("MyCustomColumn") = String.Format("<span style=""color:green"">{0}</span>", val)
          End If
        Next
      End If
    End Sub
    				
  • Removed exception in DataColumnCollection when attempting to retrieve a non existing ColumnName. Thus allowing testing for null/Nothing.
  • Localization (translation to other languages in the User Interface)
    • AxpDataGrid now uses standard .net localization techniques.

      Automatic detection and use of the current thread's UICulture.

      Pre-translated strings for several languages included in Satellite assemblies.

      For languages that is not included as satellite assemblies, a standard .net resx file (Xml format) can be supplied by the programmer.

      Customized strings can be set per AxpDataGrid instance.

      German, Spanish, Italian, Dutch and Norwegian binary resource files included. Localization to other languages can be done using .net XML resource files.

      See Sample 30 for a complete example showing all the new features.

    • New Property AxpDataGrid.UICultureName() As String.
    • New Property AxpDataGrid.UIResxUrl As String.
    • New Property AxpDataGrid.UICustomStrings() As System.Collections.SortedList

      E.g.
      AxpDataGrid1.UICustomStrings.Add("RecordsPerPage", "Books per page")
    • The following properties has been made Obsolete:
      Language, LanguageString, LanguageBtnString, LangUpdString
      They do still exist in the interface, but has no effect. This change was needed to accomodate a more flexible localization scheme.
  • The AxpDataGrid.CurrentMode can now be set on page postbacks. AxpDataGrid.ClearState must also be set to True.
  • New Property PageSize As Integer.
    Synonym for RecordsPerPage (will probably be marked obsolete in a future version, but it can still be used).
  • New Property CurrentPageIndex As Integer.
    Manual DataBinding (AxpDataGrid.UseDataBinding=True and a call to DataBind) must be used to ensure that DataBinding is executed after the event leading to setting CurrentPageIndex (f.ex. a button or link click).
  • New ReadOnly Property PageCount As Integer.
    Available in AxpDataGrid Load event or after DataBind() if UseDataBinding=True.
  • An exception is now thrown if AxpDataGrid.Tag values are not unique on a single page.
  • Fix. AxpDataGrid.CurrentMode was erronously "formedit" when data validation failed on Insert. It is now "formadd" as it is supposed to be.
  • Fix. If EditOptions included "Add" and not "Update", the AxpDataGrid.CurrentMode property was always = "formview". It is now "formadd" (and "formedit" for the readonly edit form)
  • The internal data validation of numeric fields has been improved slightly.
  • Change. If the grid was in Form Edit Mode and a record had been saved, it would not leave the current record if the current data source was changed between postbacks. Now - If ClearState is set to True, the grid will let go of the current record in Form Edit Mode.
  • Memory and buffer requirements for grids with a very large number of rows per page has been reduced. The same goes for exporting large recordsets to Excel
  • Optimized speed for stored procedures.

    General Notes

    The grid performs an internal record count for stored procedures by scrolling the recordset. This is inefficient for large recordsets. If the record count can be established by other manual means, set the AxpDataGrid.RecordCount property to avoid the internal record count.

    The grid will normally load the whole recordset from stored procedures to enable sorting. To avoid loading the whole recordset, set AxpDataGrid.GridColsNoSort="*"
  • The AxpDataGrid.FromRow property can now be set on page postbacks. Manual DataBinding must be used to ensure that DataBinding is executed after the event leading to Page Navigation (f.ex. a button click).

    E.g. to go to Page number 10:

    Dim pageNum As Integer = 10
    AxpDataGrid1.FromRow = (pageNum - 1) * AxpDataGrid1.RecordsPerPage + 1

  • Fix. Guid type Lookup fields was not supported.
  • Fix. If a comma was used in one of the arguments to the AddEditLookupMethod, an exception was thrown in the Edit Form.

Version 2.8

2.8.7

.NET 1.1 Assembly Version : 2.8.7.0 (2005-05-04)
  • The grid validation of the length of input text fields is no longer performed if the provider reports a string size less than 0, as this is considered a provider error.
  • New events (delegates) that triggers just before rendering (but after any database interaction including database update or databinding):
    OnBeforeFormEditRender, OnBeforeFormViewRender, OnBeforeGridRender.
    See Sample21b for example usage.
  • New property. AxpDataGrid.ShowPostedValues (boolean).
    Determines whether the grid should display the values posted by the user.
    Note This property value is set automatically by the grid but it can be overriden in the OnBeforeFormEditRender event.
    This is useful when performing custom server side validation.

    See Sample19 and Sample21b for example usage.
  • New properties. AxpDataGrid.UpdateMessage (string) and AxpDataGrid.UpdateErrorMessage (string)
    Customized data update messages.
    This is useful when performing custom server side validation.
  • Fix. The CurrentDataRow and CurrentDataView was filled with a single datarow when the Add button was clicked. The CurrentDataRow was supposed to be empty (Nothing/null) and the CurrentDataView should contain Schema information only. This bug was introduced in version 2.8.3.
    When accessing CurrentDataRow it is advised to check if it is initialized:
    If Not AxpDataGrid1.CurrentDataRow Is Nothing Then
    .....
    End If
  • Fix. If an input field was not Updateable and the validation or data base action failed on an insert, the input field was readonly making it impossible for the user to correct the data unless he pressed the Back button.
  • Some of the samples have been modified to illustrate usage og new properties and events.
2.8.6

.NET 1.1 Assembly Version : 2.8.6.1 (2005-03-18)
  • Fixed error when EditPerformUpdates was set to false and manual DataSource was used.
  • Added new Sample21b. Code pattern to use when EditPerformUpdates = false.

.NET 1.1 Assembly Version : 2.8.6.0 (2005-03-17)
  • Fix. Manual DataSource and editing caused errors when the DataSource was empty.
  • Fix. Deleting last row when using a manual DataSource or a Stored Procedure did not work as expected.
  • New. Floating Point Primary key values is now supported.
    New property DatabasePrimaryKeyNumberFormat (System.Globalization.NumberFormatInfo). The number format used by the database engine for floating point primary keys.
    This property setting is used by the grid for floating point primary key values only.
  • Fixes. Setting GridFieldsShow="*" or FormFieldsShow="*" could cause fields to be hidden.
  • Some properties did not always return a correct value when read. (FormFieldsShow, GridDisplayFieldNames, FormDisplayFieldNames)
  • A few exception messages added to control correct property values.
  • Repeatedly setting ConnectionString is now working properly as long as it is done before the connection has been opened. This happens before databinding (in the Grid's load event or when calling DataBind if UseDataBinding=True)
2.8.5

.NET 1.1 Assembly Version : 2.8.5.0 (2005-03-05)
  • New documentation
    The help system can now be integrated in the Visual Studio Help Collection. The help collection supports Dynamic help and Table of Content.
    The Axezz help system is now a combined collection with help for AxpDataGrid and the AlbumOnNet WebControls.
    A short AxpDataGrid Tutorial has been added.
    Enhancements made to the existing documentation.
  • New properties added to EditFieldItem:

    TextMode property. (System.Web.UI.WebControls.TextBoxMode)
    One of TextBoxMode.MultiLine, TextBoxMode.Password, TextBoxMode.SingleLine
    If EditFieldItem.Wrap is set to true, the TextMode is automatically set to MultiLine.

    Width property. (System.Web.UI.WebControls.Unit)
    Height property. (System.Web.UI.WebControls.Unit)
    CssClass property. (String)
  • Change: An exception is now thrown if an attempt is made to add an EditFieldItem for a single column more than once.
    In previous versions this was possible to do, but only the first EditFieldItem added was having any effect, making debugging difficult. Example.
    Dim efi As New Axezz.WebControls.EditFieldItem
    efi.ColumnName = "ProductName"
    efi.TextMode = TextBoxMode.MultiLine
    efi.Rows = 5
    AxpDataGrid1.SetEditField(efi)
    
    Dim efi2 As New Axezz.WebControls.EditFieldItem
    efi2.ColumnName = "ProductName"
    efi2.Caption = "Product"
    AxpDataGrid1.SetEditField(efi2) ' This will cause an exception
    
  • New property HeaderText. Text and/or Html code displayed above the grid.
  • New: The current AxpDataGrid assembly name and version is now rendered if AxpDataGrid.DisplayDebug is set to true.
  • Fix: The Dotfuscator process has been altered slightly to avoid a rare namespace/type name conflict.
  • Fix: When inserting a new record into an empty database table, and the insert failed, an unhandled exception occured in the grid.
2.8.4

.NET 1.1 Assembly Version : 2.8.4 (2005-02-22)
  • Fix: Pressing the Add button followed by a postback from another page element would cause the grid to attempt an Insert.
  • Fix: Records with string based primary keys containing characters that was URL encoded (e.g. spaces) can now be edited again.
2.8.3

.NET 1.1 Assembly Version : 2.8.3.0 (2005-02-06)
  • The CurrentDataView collection is now initialized when the Add New Record Form is displayed.
    The CurrentDataView will contain database schema information for the current table.
  • Server side validation has been added for text field lengths.
  • Navigation and Excel buttons are now disabled when The Add new record form is displayed or if Saving a record fails.
  • Fix. FormFieldsHide, FormFieldsShow, FormDisplayFieldNames and a few other properties was not taken into account when the DataSource property was set manually.
  • Fix. Adding new records to a table containing binary columns would cause duplicate inserts when other action buttons was clicked in the grid.
  • Fix. The delete record text string displayed in the button bar lacked a style setting.
2.8.2

.NET 1.1 Assembly Version : 2.8.2.4 (2005-01-26)
  • New. It is now possible to use a checkbox for any numeric database column. The new EditFieldItem.IsBoolean property MUST be set.
    The database value for False must be 0 and the value for True must be 1.
    C# example:
    Axezz.WebControls.EditFieldItem efi = new Axezz.WebControls.EditFieldItem();
    efi.ColumnName = "NumericCB";
    efi.IsBoolean = true;
    AxpDataGrid1.SetEditField (efi);
    
  • New property AxpDataGrid.GridButtonBarPlacement. One of "top", "bottom" or "both".
  • New property AxpDataGrid.FormButtonBarPlacement. One of "top", "bottom" or "both".
  • Fix. Insert will now work for the special case when a query initially does not return any records, and the grid is set in form edit mode manually.
  • Fix/Change: The button for exporting to Excel does not use std ASP.NET javascript postback anymore. (this was introduced in build 2.8.1795.23309 but causes problems for non-grid submit actions on the page, making the Excel export start over again)
  • New property AxpDataGrid.CommandTimeout. Set command execution timeout in seconds. Works fine with SQL Server. Does not seem to work with Oracle.
  • Fix. The grid now uses a Select Scope_Identity() on insert for SQL Server 2000 (version 8 or higher) to retrieve a new Primary Key with Identity type.
  • Lookupfields in the Edit Form for long text types is now supported.
2.8.1

.NET 1.1 Assembly Version : 2.8.1.21608 (2004-12-06)
  • Emergency Fix: A javascript error, preventing several features including database updates, would occur if manual grid databinding was used.
2.8

.NET 1.1 Assembly Version : 2.8.1795.23309 (2004-11-30)
  • Fix: When adding a new record and validation failed, the Delete button was enabled causing db error if clicked.
  • Fix/Enhancement : It is now possible to use the Stored Procedure given in the SQL property when displaying records in Form View Mode.
  • Setting ClearState after the grid has loaded did not have have the desired effect.
  • Fix: Setting AxpDataGrid.ClearState always resulted in ClearState beeing set to True.
  • Fix: Stored Procedure with a name shorter than 8 characters was not recognized by the grid.
  • Fix: Specifying that a boolean field should be readonly did not work when adding new records.
  • NB! Interface change: The datatype for the property AxpDataGrid.DisplayNavBarFirstLastBtn was erronously a String instead of a Boolean. The data type has been changed to a Boolean. As this is not a commonly used property, the interface has changed!
  • New: Form Edit Add only mode is now supported.
    This means you can have a Form where it is only possible to Add new data records. After adding a new record (or when viewing an existing record) all input fields are disabled.

    Example:
    ConnectionString="****"
    SQL="Select * From Products"
    EditPrimaryKeys="ProductId"
    EditNewPKStatement="autoincrement"
    RowRollOverEffect="True"
    RowClickAction="openform"
    DisplayNavBar="both"
    EditOptions="ADD NOVIEW"
    			
  • New: Form Data Entry mode.
    It is now possible to configure AxpDataGrid to render Forms only. I.e. no grid view.
    To enable the Data Entry Mode set DisplayType="form" in combination with the required EditOptions (see examples below)

    Examples:

    A Data Entry Form with all options enabled (Add, Update, Delete and Copy).

    ConnectionString="****"
    SQL="Select * From Products"
    DeleteSQL="Delete From Products"
    EditPrimaryKeys="ProductId"
    EditNewPKStatement="autoincrement"
    DisplayNavBar="both"
    EditOptions="ALL NOVIEW"
    DisplayType="form"
    CopyFields="*"
    			

    A Form Only instance of AxpDataGrid for adding new records.

    ConnectionString="****"
    SQL="Select * From Products"
    DeleteSQL="Delete From Products"
    EditPrimaryKeys="ProductId"
    EditNewPKStatement="autoincrement"
    DisplayNavBar="both"
    EditOptions="ADD NOVIEW"
    DisplayType="form"
    			
  • Change: The Save button is now default Submit button and pressing the Enter key in edit mode will trigger a save.
  • Change: The Export to Excel button now uses client side javascript postback.
  • Fix: The Grid button title text is now OK.

Version 2.7

.NET 1.1 Assembly Version : 2.7.1742.18023 (2004-10-08)
  • Two serious bugs introduced in version 2.6 has been fixed:
  • Fix: Client side postback javascript was not generated in a few cases.
  • Fix: The grid would not work for Forms with a name other than "Form1"
  • Change : Slightly better rendering for Mozilla Firefox.
  • Sample 26 (Grid w/ Checkboxes) and Sample 27 (Retrieve values from a grid when clicking on rows) added.

Version 2.6

.NET 1.1 Assembly Version : 2.6.1728.22681 (2004-09-24)
  • NOTE! The .NET 1.0 framework is no longer supported. This update have no assembly nor a Sample for .NET 1.0
  • New: It is now possible to have a scalable (e.g. width and height=100%) scrollable grid.
    It will only work for IE. Please see the new Sample24b for usage.
  • New Events added:

    FirstClick Raised when the First page/record button is clicked.
    LastClick Raised when the Last page/record button is clicked.
    NextClick Raised when the Next page/record button is clicked.
    PreviousClick Raised when the Previous page/record button is clicked.
    ListClick Raised when the List button (or Close button if going to list) is clicked.
  • Change: The grid now use more standardized ASP.NET client side javascript (__doPostBack), instead of the custom javascript used in previous versions. If you have previously utilized the Page Requests to handle f.ex. First page/record Click, this will not work anymore. Use the new events (above) instead.
  • Change: You will now get an exception if the control is not placed inside a html form.
  • Fix : Lookup table with a fixed size character field as Primary key.

    If the database table lookup column has a fixed length and the selected value has a length less than the max allowed length of that field, the rest of that field contain spaces. If form data validation failed, either due to the automatic builtin validation or custom server side validation, the grid would fail to recognize the posted value as selected in the list and go on to display the first entry in the list. This was due to an erronous comparison not taking into account that the field might contain trailing spaces. This bug has now been fixed.
  • Fix : Displaying the add new record form (or displaying the edit form) failed when a stored procedure was specified in the SQL statement, and the recordset was empty.
  • Fix : An index out of bounds error occured if GridFormatCellFunction or GridFreeFormatCell was set and the EditSQL contained fewer columns than the grid, the FormSQL was not set and the column was outside the range of columns in Edit mode.
  • Change : The promo html comment generated by the grid is now removed for licensed versions.

Version 2.5

.NET 1.1 Assembly Version : 2.5.1656.26537 (2004-07-14)
.NET 1.0 Assembly Version : 2.5.1656.27189 (2004-07-14)
  • New: A new series of style sheets added (V2 Style Sheets).
    Note that a few new CSS classes are emitted from the grid.
    These are utilized in V2 style sheets only, and inserted into existing css files (near the top).
    /* Table enclosing the whole control */
    table.AxpDataGrid {}
    /* Table enclosing grid column headers for scrollable grid */
    table.AXDBTableScroll {}
    /* Data update message */
    .AXDBUpdateMessage {}
    /* Data Edit Button Bar */
    table.AxpDbEditBtnBar {}
    /* Data Edit Button Bar - single row/col*/
    tr.AxpDbEditBtnBar {}
    td.AxpDbEditBtnBar {} /* also present in previous css files */
    			
  • Fix : Fixed an issue where the button bar in the form view mode was not rendered when it should be.
  • Fix : The Close button is no longer visible in the Form Edit mode when DisplayType="form" and Form View as it does not make much sense.
  • Fixes for scrollable grid.
    • The column cells content now has the style attribute overflow:hidden. This will make it easier to creater a nice looking scrollable grid when IE/Opera is the primary browser. Does not work in Netscape/Mozilla.
    • The row number column (the leftmost with column header name=#) was visible, the grid headers did not align properly with the grid column cells.
    • GridColsNoWrap did not have any effect for scrollable grids.

Version 2.4

.NET 1.1 Assembly Version : 2.4.1644.21245 (2004-07-02)
.NET 1.0 Assembly Version : 2.4.1644.21281 (2004-07-02)
  • New: Scrollable grid.
    New properties:
    Scroll : ScrollType
    ScrollHeight : String. Height of the scrollable area
    ScrollBarWidth : String. Default blank string

    Example extract from new Sample24:
    SQL="Select ProductId,ProductName,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder From Products"
    Scroll="Vertical"
    ScrollHeight="150px"

    GridCellWidths="30,200,150,40,60,60"
    GridDisplayFieldNames="Id,Product Name,Quantity Per Unit,Price,In Order,In Stock"
  • Minor but vital changes has been made to all style sheets to accomodate scrolling.
    Please copy and use the new style sheets from the Sample application!
  • New: Database update Events.
    OnBeforeInsert, OnBeforeUpdate, OnBeforeDelete
    OnAfterInsert, OnAfterUpdate, OnAfterDelete.

    Related Methods and properties to be used inside these events:
    New: Method AbortCommandExecution. Aborts execution of the current database update command
    New: AxpDataGrid.UpdateFields collection. Contains the data value posted from the user. Individual data items can be changed/set to another value, or can be utilized for Server Side validation.
    See new Sample25 for usage.
  • New: Property EditFieldItem.Visible
    New: Property EditFieldItem.IsHardCoded
  • New: A Close button is now also in use in the Edit Form even if Form View is not in use. Pressing Close will then go to Grid View.
  • Fix: Html Editor. Added no cache headers to the Rich Edit html code to avoid syncronization problems that could lead to data loss.
  • Fix: Record navigation in Form Edit Mode would fail in some special circumstances.
    This was notable when the grid visibility was set dynamically and manual DataBinding was used.
  • Visual changes.
    The text link going from Form to View mode has been replaced with a graphical image file, link.gif.
    Make sure to include the new gfx folder into your projects if upgrading from a previous version!
    Other minor cosmetic changes have also been made to the existing image files.

Version 2.3

.NET 1.1 Assembly Version : 2.3.1635.20106 (2004-06-23)
.NET 1.0 Assembly Version : 2.3.1635.20293 (2004-06-23)
  • New: Property AxpDataGrid.CountSQL.
    If the automatic internal record count query fails or if a manually entered record count query is preferred, specify a complete "SELECT COUNT(*) FROM ..." here
  • New: Support added for Sybase Adaptive Server Anywhere (Tested with ASA version 9.0.1).
    In previous versions of AxpDataGrid, the record count failed.

    A typical OleDb connection string for Sybase ASA looks like the following:
    "Provider=ASAProv;Data Source=asademo9;DatabaseName=asademo;UID=dba;pwd=sql"
  • New: Support added for Right-To-Left aligned Forms (forms with the attribute dir="rtl"). A set of navigation buttons intended for RTL forms can be found in the Samples directory "gfx/rtl/". Set the AxpDataGrid property ImageDir="../gfx/rtl/" in the sample application to see and use them.
  • New: Property EditFieldItem.Disabled (Boolean)
    To make a form input field readonly for the user, but scriptable in javascript, set ReadOnly=True and Disabled=False.
  • New: Property AxpDataGrid.DataExportEncoding
    The name of the encoding to use when exporting data (to Excel).
    Should match the data encoding in the data source. E.g. iso-8859-1
    System.Text.Encoding.Default will be used if DataExportEncoding has not been set.
    Note. In previous versions of AxpDataGrid, no encoding was set when data was exported. This could lead to erronous data export.
  • Enhancement: New and more meaningful exceptions have been introduced a few places.
  • Change: The Excel Export now displays user supplied Column names instead of database field names.
  • Fix: The Excel Export no longer outputs hidden columns.
  • Fix: Setting the property ApplyCellFormattingToExcel=True now works as intended.
  • Fix: Queries on MS SQL Server containing joins with an order by clause sometimes caused an erronous internal record count query to be executed. This has now been fixed.
  • Fix: The index for the method CurrentRecord is now 0-based and not shifted to -1.
    Please check your code and change accordingly if you have used this method!
  • Minor fixes in the documentation (help file).
  • Sample 22 has been altered. Now shows how to display different images based on a boolean field in the datasource.
  • New Sample: A Date Picker Sample has been added. See Sample 23

Version 2.2

.NET 1.1 Assembly Version : 2.2.1573.16139 (2004-04-22)
.NET 1.0 Assembly Version : 2.2.1573.16150 (2004-04-22)
  • Changes to ReadOnly fields.
    If a default value is set (using EditFieldItem) when inserting records, or an update value is set (using EditFieldItem) when updating a record, and the field is Readonly, the user interface will display a read only field and the insert/update will include the value set in the EditFieldItem. This will also work if the field is hidden.

    If on the other hand, no default values is set on an insert, the insert statement will not include the data field (as described for the previous build - see below).
  • Added Sample 21, How to use your own datasource and enable data edit.
.NET 1.1 Assembly Version : 2.2.1568.1028 (2004-04-17)
.NET 1.0 Assembly Version : 2.2.1568.1181 (2004-04-17)
  • The grid now includes a Rich Text Html Editor.
    The editor is implemented as a "Scriptlet" and will only work for newer versions of Internet Explorer on the Windows platform.

    The source and graphics for the editor is found in the Samples sub directory htmledit

    A new function, EnableRichTextEditor() has been added to EditFieldItem and a new class Axezz.WebControls.HtmlEditor to access the editor from code has also been implemented.

    Example Code to enable a rich text editor:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles MyBase.Load
     Dim edit1 As New Axezz.WebControls.EditFieldItem
       With edit1
         .ColumnName = "Notes"
         Dim htmlEditor As Axezz.WebControls.HtmlEditor = .EnableRichTextEditor()
         htmlEditor.Width = "600"
       End With
       AxpDataGrid1.SetEditField(edit1)
    End Sub

    Sample 20 is added and contains a working example.
  • Support added for MS SQL Server GUID data types.

    If a Guid is used as an autogenerated primary key (i.e. it the default values is set by SQL Server), set EditNewPKStatement="autoincrement". NOTE. The grid will NOT retrieve a newly inserted record after insert and display it in the Edit Form as is the case for other types of Insert.
  • Read Only Data fields: In previous versions of the grid, Read Only fields was used in the database INSERT statement. The value inserted was NULL. This behavior has now changed and Read Only fields is no longer part of the INSERT statement. The net result is that default database values (defined in the database schema) now will be set to a correct value.
  • New property OracleDatePattern, default=System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern

    Set this field to a valid Oracle Date Pattern if the primary field is an Oracle Date field.
    E.g. OracleDatePattern="DD.MM.YYYY HH24:MI:SS"

Version 2.1

.NET 1.1 Assembly Version : 2.1.1557.42931 (2004-04-07)
.NET 1.0 Assembly Version : 2.1.1557.42947 (2004-04-07)
  • New functionality allows copying of data records.
    To enable it, set a value for the new property CopyFields and also make sure that EditOptions include ADD.

    A Copy Button is visible in Form View and Edit mode when Copying is enabled.
    When user clicks the button, data fields in the CopyFields property is copied from the current record to a new edit form. Primary Key Fields are never copied. The record will be stored to the database when user clicks the Save button.

    Set CopyFields="*" to copy all data columns from one record to another.
    Set CopyFields to a comma separated list of column names to only include these fields when copying.

    Added the related event CopyClick.
  • New property DisplayErrorMessage, default True. Set to False to hide the exception messages handled by the grid. These are the error messages one will find below the grid. The error message itself is available in the property ErrorMessage (as before).
  • Sample 19 added. Shows how Server Side Data Edit Validation can be done.
  • It is now possible to edit and update Primary Key Fields (the database engine might not allow primary field update, so take care to avoid exceptions)
    Set the new property IsPrimaryKeysUpdateable=True to enable update of primary keys.
  • The EditFieldItem.HtmlAfter property setting will now also be rendered for ReadOnly fields.
  • Added support for Oracle Date Primary Keys.
  • The German buttons now have German text written on them.
  • The Close button did not work if clicked immediately after the user clicked the Add button.
  • Posted field values will now be displayed on an Update or Insert button click if the property .EditPerformUpdates=false
  • Repeated calls to the DataBind() method during a single page request now have the desired effect.
  • Fix. Grid events did not fire until DataBinding was performed (internally or manually) This could cause the events not firing at all if UseDataBinding was set to true and DataBinding was called manually after all postback events should normally occur. This would typically be if DataBind was called in the Page PreRender event.
  • Fix. Primary Key Field string values containing apostrophes (') or commas would cause grid exceptions in most cases. (Thanks John Paul)
  • Fix. The grid did not interpret the correct primary key field data type in some rare occurances (Thanks Nadine)

Version 2.0

.NET 1.1 Assembly Version : 2.0.1543.435 (2004-03-23)
.NET 1.0 Assembly Version : 2.0.1543.828 (2004-03-23)
  • Fix. The AllowNulls parameter of the method AddEditLookup did not have any effect anymore.
  • Fix. Primary key fields was read only in the edit form in some circumstances when they should be editable.
  • Fix. Better support for string based primary keys. If they contained e.g. a space, functionality would be lost. This has been fixed by adding an URL decoding internally.
  • Change. In all previous version, repeatably setting the .SQL (or .FormSQL) property to different values during a single page request, could lead to unexpected results. This has now changed for the better.
.NET 1.1 Assembly Version : 2.0.1536.1342 (2004-03-16)
.NET 1.0 Assembly Version : 2.0.1536.1537 (2004-03-16)
  • Slight alterations made to Sample 8.
  • Fixes for empty data grids or database tables.
    When .SQL and .EditSQL differed and the database table was empty, the edit form would attempt to display an edit form containing fields from .SQL.
    It was not possible to test if the property CurrentDataRow was null / Nothing.
  • The properties FromRow and ToRow are now available in the Grid's Load event as promised in the documentation.
  • The grid would fail if a dataset or a connection string was set before the grid's Load event occured. This could cause problems in certain circumstances for those relying on DataBinding (i.e. the property .UseDataBinding=True)
  • Some exception handlers added internally to give better error messages
  • At last, Sample application for C# added. (Visual Studio 2003 Solution)
  • Fix: The property GridColsNoSort="*" did not work.
  • Fix: The current record position was lost for a newly inserted record if an update was made directly after insert.
  • Fix for Oracle. Edit input fields was often readonly when they should not be.
  • Better Intellisense support.

    Place the file AxpDBNet.xml in your project's bin directory.
    Visual Studio will then retrieve this information and use it to display AxpDataGrid Intellisense information.

    The file AxpDBNet.xml is also duplicated in the sample applications.
  • Fixed some Excel export issues.
Initial Version 2.0 release.
.NET 1.1 Assembly Version : 2.0.1529.8574 (2004-03-09)
.NET 1.0 Assembly Version : 2.0.1529.8532 (2004-03-09)
  • Behavioral changes

    In previous releases, AxpDataGrid did most of its work when rendering. This has changed and might have consequences on existing installations using the grid. See the note about UseDataBinding below.

    The change was needed to accomodate Events and the various new objects and functionality available in this release.
  • It is now possible to use a DataSource as input to the grid.
    Any datasource that can be evaluated to a DataView can be used.
    This allows the use of .NET DataSet, DataTable and DataView as a DataSource.

    Note If a DataSource is set, it will be used both for Grid Mode and Form View Mode even if a Form SQL is set.

    Data Editing and the corresponding Form Edit still requires setting ConnectionString, EditSQL and other properties, as it was in the previous versions of AxpDataGrid.

    Set the corresponding property DataMember to a table name of a dataset if the datasource is a DataSet.
  • After inserting a new data record and the data record has a single Autonumber/Identity (Access/MS SQL) primary key or an Oracle Sequence has been specified, AxpDataGrid will attempt to retrieve and display the newly inserted record.
  • New Property UseDataBinding Boolean, default=False
    If set to True, a call to the new Method DataBind() must be made.

    The properties on the grid that normally would be available after the grid's Load event will not be available until DataBind is called.

    This can be useful in circumstances where the grid properties are set dynamically and maybe depends on other controls on the page. If resorting to default behavior (i.e. UseDataBinding=False) other controls on the page will probably load after AxpDataGrid has loaded, thus making it impossible to dynamically set grid properties.

    If UseDataBinding=True, one can programmatically decide when AxpDataGrid should perform the vital DataBinding. This might f.ex. be done in the Page PreRender event . See also Sample 16 - Searching using WebControls.TextBox.
  • It is now possible to sort the grid on individual columns if a Stored Procedure is used.
  • New property LookupDataSet() As DataSet
    One DataTable per lookup needed.
    The Lookup DataTable.TableName MUST have the same name as the Master table column name.

    E.g. We want to have a lookup for the column ShipRegion in the Orders table in the Northwind database. Dim dt As New DataTable("ShipRegion") ' Lookup DataTable.TableName=Master table column name
    dt.Columns.Add("Value") ' The Value field for the lookup must be the first column, i.e. Column 0. The name of the column does not matter
    dt.Columns.Add("Name") ' The Name field for the lookup must be in column 1
    dt.Rows.Add(New String() {"", ""})
    dt.Rows.Add(New String() {"RJ", "Rio de Janeiro"})
    dt.Rows.Add(New String() {"SP", "Spain"})
    AxpDataGrid1.LookupDataSet.Tables.Add(dt)

  • Events:

    UpdateClick Raised when the Save button is clicked for an existing data record.
    InsertClick Raised when the Save button is clicked for a new data record.
    AddClick Raised when the Add button is clicked (a new empty data form is displayed).
    DeleteClick Raised when the Delete button is clicked
    EditClick Raised when the Edit button is clicked or just when the grid is displaying a form for updating a data record, e.g. as a result of moving to next record using the navigation buttons when already in edit mode.
  • Public Method GetUpdateValue(ByVal FieldName As String) As String.
    Returns the posted value of an input field in an Edit Form.
    Available after Grid's Init event.
  • New object model for setting properties on grid or form view columns.
    Availabe in AxpDataGrid.Load event.
    Property GridColumns() As DataColumnCollection
    Property FormViewColumns() As DataColumnCollection (Collection of DataColumn objects)
    Properties on DataColumn:
      .ColumnName
      .Caption
      .DataType
      .IsBlob
      .IsLongText
      .Visible
      .Wrap
      .Width
      .IsSortable
      .GridHeadHtmlAttributes
      .CellHtmlAttributes
      .FormatCellFunction
      .FreeFormatCell

    Example usage:
    AxpDataGrid1.GridColumns("ShipVia").Width = "30"
    AxpDataGrid1.GridColumns("Status").FreeFormatCell = "<img src='statusimg#Status#.gif'>"
  • New object model for setting various properties to individual EditFields.
    New method SetEditField(ByVal EditField As EditFieldItem)
    Properties on EditFieldItem:
      .ColumnName
      .DefaultValue
      .UpdateValue
      .HtmlAfter
      .Columns
      .Rows
      .Wrap
      .IsReadOnly
      .Updateable
      .Required
  • New property CurrentDataView() As DataView. Check on null before use.
    Available in AxpDataGrid.Load event.
    Will contain the the DataSource set on that property as a DataView
    OR
    an internally created DataView based on the SQL currently in use.

    The internally created DataView will contain the data cells for the currently active page.

    Note!
    The data content can be inspected and ALTERED before rendering if needed.
  • New property CurrentDataRow() As DataRow.
    Check on null (C#) / Nothing (VB) before use. Can be used instead of CurrentRecord.
    Available in AxpDataGrid.Load event.
    Example usage:
    Private Sub AxpDataGrid1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxpDataGrid1.Load
      If Not AxpDataGrid1.CurrentDataRow Is Nothing Then
        Dim MyColumnValue as String = AxpDataGrid1.CurrentDataRow.Item("MyColumnName").ToString
      End If
    End Sub
  • New Property ClearState (Boolean, default = False).
    Useful when the SQL is changed dynamically between page updates.
  • It is no longer needed to assign a value to the .Tag property if there are more than 1 grid on a single page.
    The grid will now assign Tag values automatically.
  • NB! The public method RenderGridJavascript introduced in 1.3 Beta is removed.
    (The grid now utilize Page.RegisterClientScriptBlock)
  • Increased execution spead, especially notable against Oracle databases.
    (Changed internal method of retrieving dbschema attributes Column.IsReadonly, Column.AllowDBNull. These values are now read from data row schema information instead of the database dictionary information structure.) [Use SetEditFields if the schema information does not retrieve these values]
  • New property ExcelFileName. Default="DataExport"
  • Some properties that only allowed a value consisting of comma separated data column numbers now accepts column names. This includes GridFieldsShow, GridFieldsHide, GridColsNoWrap, GridColsNoSort, FormFieldsShow, FormFieldsHide.
  • Added support for DateTime fields in the AddEditLookUp method.
  • Change: Various properties accepting values in a comma separated list, would not recognize items in the list if blank characters was present (before or after a comma).
  • Previously undocumented feature for the properties
    GridTRTag, GridTROddTag, GridTREvenTag, GridTDTag, GridTDOddTag, GridTDEvenTag.

    It is possible to include data fields in the Html properties for these tags.
    Enclose column name in double set of #'s (e.g. ##CUSTOMERID##).
  • Some properties and methods that used to be available after grid rendering are now available after the AxpDataGrid.OnLoad event. This includes FromRow, CurrentMode, CurrentRecord, RecordCount
  • When the grid entered Form Edit mode and there was no records in the data set, the grid used to display the text line "No more records" and no input fields appeared. This has changed. The control will now display the std Add New record form in these cases.
    This can also be utilized to make a data record input form for new records only.
    Append a where clause that ensure no records are returned in the SQL property. E.g. "select ... WHERE ID=-99999"
  • BugFix : SQL Server Binary fields caused a cast error. Value of Binary fields will now not be displayed, as intended.
  • Bug Fix : Button bar First and Previous button was active when inserting a new record in an empty table.
  • New samples and changes to existing samples.

    Make sure to check out the changes in the Master-Detail samples.

    All samples can now be run against MS SQL Server 2000 Northwind database in addition to the Access NWIND database.

Version 1.3

.NET 1.1 Assembly Version : 1.3.1467.37620 (2004-01-07)
.NET 1.0 Assembly Version : 1.3.1467.37664 (2004-01-07)
  • Fix. Date formatting using SetGridFormatCellFunction (ColNumber, "Format, format style") did not work too well for some Cultures (languages).
    Symptoms:
    If using the Format function as in the following code
    AxpDataGrid1.SetGridFormatCellFunction(5, "Format, dddd MMM dd yyyy")
    the grid would display the format style string (dddd MMM dd yyyy) and not the formatted date.
  • Fix for stored procedures. Navigation issues are now solved. (Involved next page, last page and general position issues when switching from grid to form and edit views)
  • Fix. An internal method caused problems when the property .FormSQL contained a WHERE clause.
    E.g. FormSQL="SELECT OrderId, Name=(SELECT CompanyName FROM Customers WHERE Customers.CustomerID=Orders.CustomerId) FROM Orders"
  • Fix for the case when you have more than 1 grid on a single page and the grid with .Tag="1" is invisible (.Visible=False)

    In previous version, the grid javascript would not be emitted to the html page, causing errors.
    New method RenderGridJavascript.
    This method can be called from inline aspx code. Place the call after the grid tag itself:

    <%If Not AxpDataGrid1.Visible Then AxpDataGrid1.RenderGridJavascript()%>

  • New property ApplyCellFormattingToExcel (default=False).
    Apply data formatting if GridFormatCellFunction is set for selected columns.
    Excel might have problems parsing the data properly if formatting is applied.
  • Fix. Export to Excel did not work for stored procedures.
  • Fix. Setting the property FormCellWidths did not work correctly for the Edit Form. It would use the first width specified for both columns (the field name and value) in the Edit form.
  • Enhancement. The grid will now attempt to establish if the AxConnection.DatabaseEngine is MS Acccess (ACCESS) or MS SQL Server (MSSQL) based on the given connection string.

Version 1.2

.NET 1.1 Assembly Version : 1.2.1408.29345 (2003-11-9)
.NET 1.0 Assembly Version : 1.2.1408.31829 (2003-11-9)
  • Changes to help file.
    The Help file now contains more information and samples.
    There is now 3 versions of the help file with different links to the .NET Framework.
    The chm file in the root folder links to MSDN online
    The chm file in the NET10 folder links to .NET SDK 1.0 Help files
    The chm file in the NET11 folder links to .NET SDK 1.1 Help files
  • New samples added to the sample application (Sample 10 and 11)
  • The attribute FromRow has been made Writable. It can be used to set the initial starting record. E.g. If the grid displays 20 records per page and you want the initial display to start at page 2, set FromRow=21.
  • Fix. Long text fields would display data from previous record when the Add button was clicked.
  • Fix. Setting the property GridColsNoWrap in Design mode had no effect. (The values disappeared)
  • Tabs and leading space characters are now removed from the SQL properties to avoid query errors.
  • Fix. Setting Visible to False caused errors to be displayed in design mode.
  • Fix. If binary or long var binary fields was included in the edit query, database updates would fail. These fields are now ignored as intended.
  • The Format function referenced in the documentation for the method SetGridFormatCellFunction was not implemented.
  • Fix. Setting the property OrderByDesc=True had no effect.

Version 1.1

.NET 1.1 Assembly Version : 1.1.1388.2884 (2003-10-20)
.NET 1.0 Assembly Version : 1.1.1388.3213 (2003-10-20)
  • Fix. Editing empty tables or operating on empty recordsets caused errors.
  • Fix. Hidden fields and read only fields did not always have the intended behavior.
  • Added a new sample to the Sample application (Sample 9. Master-Detail)

Version 1.0

.NET 1.1 Assembly Version : 1.0.1371.35690 (2003-10-03)
.NET 1.0 Assembly Version : 1.0.1371.35679 (2003-10-03)
  • Initial public release.