.net server control is almost feature complete and functional. All .net examples...
authorMatt Brown <dowdybrown@yahoo.com>
Fri, 3 Jun 2011 23:12:22 +0000 (23:12 +0000)
committerMatt Brown <dowdybrown@yahoo.com>
Fri, 3 Jun 2011 23:12:22 +0000 (23:12 +0000)
git-svn-id: svn://svn.code.sf.net/p/openrico/code/trunk/rico3@84 53df2df2-7ab5-4331-af62-ea79255fa4e2

28 files changed:
bin/Rico.dll
documentation/LiveGrid.html
examples/dotnet/3grids.aspx
examples/dotnet/RicoDbViewer.aspx
examples/dotnet/RicoDbViewerDetail.aspx
examples/dotnet/ShipperEdit.aspx
examples/dotnet/employees.aspx
examples/dotnet/ex1.aspx
examples/dotnet/ex2editfilter.aspx
examples/dotnet/ex2json.aspx
examples/dotnet/ex2nosession.aspx
examples/dotnet/ex2xml.aspx
examples/dotnet/menu.aspx
examples/dotnet/photos.aspx
examples/dotnet/simplegrid.aspx
examples/php/photos.php
minsrc/ricoGridCommon.js
minsrc/ricoLiveGrid.js
minsrc/ricoLiveGridAjax.js
minsrc/ricoLiveGridForms.js
minsrc/ricoLiveGridMenu.js
minsrc/ricoSimpleGrid.js
ricoClient/css/coffee-with-milk.css
ricoClient/css/grayedout.css
ricoClient/css/rico.css
ricoClient/css/seaglass.css
ricoClient/js/rico.js
ricoClient/js/rico_min.js

index a3dc4ce..4957a27 100644 (file)
Binary files a/bin/Rico.dll and b/bin/Rico.dll differ
index 471a2fb..ccc411f 100644 (file)
@@ -723,22 +723,6 @@ See also the <a href='#filterUI'>filterUI</a> option.
 <dd>Token in select filters used to indicate "show all values" (default: "___ALL___").\r
 </dl>\r
 \r
-<h4>Images</h4>\r
-<dl>\r
-<dt>resizeBackground\r
-<dd>Image to use for column resize handle. (default: 'resize.gif')\r
-\r
-<dt>sortAscendImg\r
-<dd>Image to use to indicate that the column is sorted in ascending order. (default: 'sort_asc.gif')\r
-\r
-<dt>sortDescendImg\r
-<dd>Image to use to indicate that the column is sorted in descending order. (default: 'sort_desc.gif')\r
-\r
-<dt>filterImg\r
-<dd>Image used to indicate an active filter on a column. (default: 'filtercol.gif')\r
-</dl>\r
-\r
-\r
 <h4>Cookie options</h4>\r
 <dl>\r
 \r
@@ -1005,19 +989,18 @@ use a align="right" on the &lt;th&gt; tag to accomplish the header alignment.
 <dt>type (DataType in .net plug-in)\r
 <dd>A string containing one of these values: \r
 <ul>\r
-<li>text - any tags in the column value are removed before being displayed to the user.\r
-<li>showTags - any tags in the column value are displayed to the user as text.\r
+<li>text (default) - plain text.\r
 <li>number - column value is treated as a number, \r
 and any <a href='#NumberFormatting'>number formatting options</a> \r
 supplied in the column specification are applied.\r
 <li>datetime - column value is treated as a date &amp; time, \r
 and any <a href='#DateFormatting'>date formatting options</a> \r
 supplied in the column specification are applied.\r
-<li>UTCasLocalTime - column/database value is treated as a GMT/UTC date &amp; time, and any <a href='#DateFormatting'>date formatting options</a> \r
+<li>utcaslocaltime - column/database value is treated as a GMT/UTC date &amp; time, and any <a href='#DateFormatting'>date formatting options</a> \r
 supplied in the column specification are applied. Before display, the value is converted to the user's local time zone.\r
 <li>date - column value is treated as a date, and any <a href='#DateFormatting'>date formatting options</a> \r
 supplied in the column specification are applied.\r
-<li>raw (default) - column values are displayed directly to the grid cell. \r
+<li>html - column values are displayed directly to the grid cell. \r
 Any HTML markup gets copied into the cell.\r
 </ul>\r
 </dd>\r
@@ -1169,11 +1152,8 @@ to which the filter is applied.
 <dt>decPlaces\r
 <dd>Number of places to the right of the decimal point. (default: 0)\r
 \r
-<dt>decPoint\r
-<dd>Decimal point symbol. (default: '.' but overridden in the translation files)\r
-\r
 <dt>thouSep\r
-<dd>Symbol for thousands separator. (default: ',' but overridden in the translation files)\r
+<dd>Boolean indicating whether to insert thousands separator. (default: true)\r
 \r
 <dt>negSign\r
 <dd>Specifies how negative numbers should be displayed. Possible values:\r
index 73e088f..1f2ab14 100644 (file)
@@ -105,12 +105,6 @@ function detailDataMenu(objCell,onBlankRow) {
   float: left;\r
   padding: 5px;\r
 }\r
-\r
-div.ricoLG_cell {\r
-  font-size: 8pt;\r
-  height: 12px;\r
-  white-space: nowrap;\r
-}\r
 </style>\r
 \r
 </head>\r
@@ -141,45 +135,51 @@ Double-click on an order to see the line items for that order.
 \r
 <div class='gridcontainer' style='height:39%'>\r
 \r
-<Rico:LiveGrid runat='server' id='customer' caption='Customers' rows='-4' frozenColumns='2' TableName='customers' DefaultSort='CustomerID' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow' dblclick="Rico.eventHandle(window,'customerDrillDown')">\r
-  <Rico:Column runat='server' heading='Customer#'   colname='CustomerID'  width='60' />\r
-  <Rico:Column runat='server' heading='Company'     colname='CompanyName' width='150' />\r
-  <Rico:Column runat='server' heading='Contact'     colname='ContactName' width='115' />\r
-  <Rico:Column runat='server' heading='Address'     colname='Address'     width='130' />\r
-  <Rico:Column runat='server' heading='City'        colname='City'        width='90' />\r
-  <Rico:Column runat='server' heading='Region'      colname='Region'      width='60' />\r
-  <Rico:Column runat='server' heading='Postal Code' colname='PostalCode'  width='90' />\r
-  <Rico:Column runat='server' heading='Country'     colname='Country'     width='100' />\r
-  <Rico:Column runat='server' heading='Phone'       colname='Phone'       width='115' />\r
-  <Rico:Column runat='server' heading='Fax'         colname='Fax'         width='115' />\r
+<Rico:LiveGrid runat='server' id='customer' caption='Customers' rows='-4' frozenColumns='2' DefaultSort='CustomerID' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow' dblclick="Rico.eventHandle(window,'customerDrillDown')">\r
+  <Rico:DefaultGridStyle runat='server' fontsize="8" />\r
+  <Rico:Table runat='server' TblName='customers' />\r
+  <Rico:TableCol runat='server' heading='Cust ID'     colname='CustomerID'  width='60' />\r
+  <Rico:TableCol runat='server' heading='Company'     colname='CompanyName' width='150' />\r
+  <Rico:TableCol runat='server' heading='Contact'     colname='ContactName' width='115' />\r
+  <Rico:TableCol runat='server' heading='Address'     colname='Address'     width='130' />\r
+  <Rico:TableCol runat='server' heading='City'        colname='City'        width='90' />\r
+  <Rico:TableCol runat='server' heading='Region'      colname='Region'      width='60' />\r
+  <Rico:TableCol runat='server' heading='Postal Code' colname='PostalCode'  width='90' />\r
+  <Rico:TableCol runat='server' heading='Country'     colname='Country'     width='100' />\r
+  <Rico:TableCol runat='server' heading='Phone'       colname='Phone'       width='115' />\r
+  <Rico:TableCol runat='server' heading='Fax'         colname='Fax'         width='115' />\r
 </Rico:LiveGrid>\r
 \r
 </div>\r
 <div class='gridcontainer' style='height:30%'>\r
 \r
-<Rico:LiveGrid runat='server' id='order' caption='' rows='-4' prefetchBuffer='false' TableName='orders' DefaultSort='OrderID' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow' dblclick="Rico.eventHandle(window,'orderDrillDown')">\r
-  <Rico:Column runat='server' heading='Customer#'    colname='CustomerID'  width='60' canSort='false' visible='false'/>\r
-  <Rico:Column runat='server' heading='Order#'       colname='OrderID'     width='60' />\r
-  <Rico:Column runat='server' heading='Ship Name'    colname='ShipName'    width='150' />\r
-  <Rico:Column runat='server' heading='Ship City'    colname='ShipCity'    width='80' />\r
-  <Rico:Column runat='server' heading='Ship Country' colname='ShipCountry' width='90' />\r
-  <Rico:Column runat='server' heading='Order Date'   colname='OrderDate'   width='100' datatype='date' />\r
-  <Rico:Column runat='server' heading='Ship Date'    colname='ShippedDate' width='100' datatype='date' />\r
+<Rico:LiveGrid runat='server' id='order' caption='' rows='-4' prefetchBuffer='false' DefaultSort='OrderID' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow' dblclick="Rico.eventHandle(window,'orderDrillDown')">\r
+  <Rico:DefaultGridStyle runat='server' fontsize="8" />\r
+  <Rico:Table runat='server' TblName='orders' />\r
+  <Rico:TableCol runat='server' heading='Cust ID'    colname='CustomerID'  width='60' canSort='false' visible='false' />\r
+  <Rico:TableCol runat='server' heading='Order#'       colname='OrderID'     width='60' />\r
+  <Rico:TableCol runat='server' heading='Ship Name'    colname='ShipName'    width='150' />\r
+  <Rico:TableCol runat='server' heading='Ship City'    colname='ShipCity'    width='80' />\r
+  <Rico:TableCol runat='server' heading='Ship Country' colname='ShipCountry' width='90' />\r
+  <Rico:TableCol runat='server' heading='Order Date'   colname='OrderDate'   width='100' datatype='date' />\r
+  <Rico:TableCol runat='server' heading='Ship Date'    colname='ShippedDate' width='100' datatype='date' />\r
 </Rico:LiveGrid>\r
 \r
 </div>\r
 <div class='gridcontainer' style='height:30%'>\r
 \r
-<Rico:LiveGrid runat='server' id='detail' caption='' rows='-4' prefetchBuffer='false' TableName='order_details' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow'>\r
-  <Rico:AltTable runat='server' TblName='products' TblAlias='p' JoinCondition='t.ProductId=p.ProductId' />\r
-  <Rico:Column runat='server' heading='Order#'        colname='OrderID' width='60' canSort='false' visible='false' />\r
-  <Rico:Column runat='server' heading='Description'   colname='ProductName' width='150' AltTable='products' />\r
-  <Rico:Column runat='server' heading='Unit Quantity' colname='QuantityPerUnit' width='125' AltTable='products' />\r
-  <Rico:Column runat='server' heading='Unit Price'    colname='UnitPrice' width='80' format='Dollar' AltTable='products' />\r
-  <Rico:Column runat='server' heading='Qty'           colname='Quantity' width='50' format='Qty' />\r
-  <Rico:Column runat='server' heading='Total'         formula='t.UnitPrice*t.Quantity' width='80' format='Dollar' />\r
-  <Rico:Column runat='server' heading='Discount'      colname='Discount' width='80' format='Percent' />\r
-  <Rico:Column runat='server' heading='Net Price'     formula='t.UnitPrice*t.Quantity*(1.0-Discount)' width='90' format='Dollar' />\r
+<Rico:LiveGrid runat='server' id='detail' caption='' rows='-4' prefetchBuffer='false' menuEvent='contextmenu' DisplayTimer='false' highlightElem='menuRow'>\r
+  <Rico:DefaultGridStyle runat='server' fontsize="8" />\r
+  <Rico:Table runat='server' TblName='order_details' TblAlias='t' />\r
+  <Rico:Table runat='server' TblName='products' TblAlias='p' JoinCondition='t.ProductId=p.ProductId' />\r
+  <Rico:TableCol runat='server' heading='Order#'        colname='OrderID' width='60' canSort='false' visible='false' />\r
+  <Rico:TableCol runat='server' heading='Description'   colname='ProductName' width='150' AltTable='products' />\r
+  <Rico:TableCol runat='server' heading='Unit Quantity' colname='QuantityPerUnit' width='125' AltTable='products' />\r
+  <Rico:TableCol runat='server' heading='Unit Price'    colname='UnitPrice' width='80' datatype='Dollar' AltTable='products' />\r
+  <Rico:TableCol runat='server' heading='Qty'           colname='Quantity' width='50' datatype='number' />\r
+  <Rico:FormulaCol runat='server' heading='Total'       formula='t.UnitPrice*t.Quantity' width='80' datatype='Dollar' />\r
+  <Rico:TableCol runat='server' heading='Discount'      colname='Discount' width='80' datatype='Percent' />\r
+  <Rico:FormulaCol runat='server' heading='Net Price'   formula='t.UnitPrice*t.Quantity*(1.0-Discount)' width='90' datatype='Dollar' />\r
 </Rico:LiveGrid>\r
 \r
 </div>\r
index 91371be..639eb2d 100644 (file)
@@ -8,8 +8,12 @@
 Sub Page_Load(Sender As object, e As EventArgs)\r
   Dim restrictions() As String = New String(3) {}\r
   if app.OpenDB() then\r
-    restrictions(3)="BASE TABLE"\r
-    'restrictions(3)="TABLE"\r
+    \r
+    select case app.dbDialect\r
+      case "Access": restrictions(3)="TABLE"\r
+      case else:     restrictions(3)="BASE TABLE"\r
+    end select\r
+    \r
     TableList.DataSource = app.dbConnection.GetSchema ("Tables", restrictions)\r
     TableList.DataBind()\r
     restrictions(3)="VIEW"\r
@@ -65,7 +69,7 @@ html, body {
 <asp:Repeater ID="TableList" Runat="server">\r
 <ItemTemplate>\r
 <li>\r
-<asp:HyperLink runat="server" NavigateUrl='<%# "RicoDbViewerDetail.aspx?id=" & DataBinder.Eval(Container.DataItem, "TABLE_NAME") & "&" & request.servervariables("QUERY_STRING") %>' Text='<%#DataBinder.Eval(Container.DataItem, "TABLE_NAME")%>' Target="detail" />\r
+<asp:HyperLink runat="server" NavigateUrl='<%# "RicoDbViewerDetail.aspx?tabid=" & DataBinder.Eval(Container.DataItem, "TABLE_NAME") & "&" & request.servervariables("QUERY_STRING") %>' Text='<%#DataBinder.Eval(Container.DataItem, "TABLE_NAME")%>' Target="detail" />\r
 </li>\r
 </ItemTemplate>\r
 </asp:Repeater>\r
@@ -77,7 +81,7 @@ html, body {
 <asp:Repeater ID="ViewList" Runat="server">\r
 <ItemTemplate>\r
 <li>\r
-<asp:HyperLink runat="server" NavigateUrl='<%# "RicoDbViewerDetail.aspx?id=" & DataBinder.Eval(Container.DataItem, "TABLE_NAME") & "&" & request.servervariables("QUERY_STRING") %>' Text='<%#DataBinder.Eval(Container.DataItem, "TABLE_NAME")%>' Target="detail" />\r
+<asp:HyperLink runat="server" NavigateUrl='<%# "RicoDbViewerDetail.aspx?tabid=" & DataBinder.Eval(Container.DataItem, "TABLE_NAME") & "&" & request.servervariables("QUERY_STRING") %>' Text='<%#DataBinder.Eval(Container.DataItem, "TABLE_NAME")%>' Target="detail" />\r
 </li>\r
 </ItemTemplate>\r
 </asp:Repeater>\r
index 4fa5028..68461bb 100644 (file)
@@ -10,33 +10,37 @@ Dim TableName as String
 Sub Page_Load(Sender As object, e As EventArgs)\r
   Dim restrictions() As String = New String(2) {}\r
   Dim ColumnInfo As DataTable\r
+  Dim ColumnObj\r
+  Dim colname as String, colname0 as String, datatype as String\r
 \r
-  TableName = trim(request.querystring("id"))\r
-  if  app.OpenGrid(dbViewer) then\r
-\r
+  TableName = trim(request.querystring("tabid"))\r
+  if app.OpenGrid(dbViewer) AndAlso TableName<>"" then\r
+  \r
     restrictions(2)=TableName\r
     ColumnInfo = app.dbConnection.GetSchema ("Columns", restrictions)\r
 \r
-    Dim colname as String, colname0 as String, datatype as String\r
+    dbViewer.Tables.Add(new Rico.Table("[" & TableName & "]"))\r
+    dbViewer.requestParameters.Add("tabid",TableName)   ' need to get the table name back so we can define columns every during every AJAX call\r
+\r
     For Each colinfo As DataRow In ColumnInfo.Rows\r
       colname=colinfo("COLUMN_NAME").ToString\r
       datatype=colinfo("DATA_TYPE").ToString\r
       if IsNothing(colname0) then colname0=colname\r
       if IsNumeric(datatype) then datatype=ADOColType(datatype)\r
 \r
-      Dim ColumnObj as New Rico.Column()\r
       if InStr(1,datatype,"binary",1) > 0 or left(datatype,3)="???" or datatype="image" then\r
+        ColumnObj = New Rico.FormulaCol()\r
         ColumnObj.Formula = "'?'"\r
       else\r
+        ColumnObj = New Rico.TableCol()\r
         ColumnObj.ColName = colname\r
       end if\r
       ColumnObj.Heading=colname\r
       ColumnObj.width=100\r
-      if InStr(1,datatype,"DATETIME",1) > 0 then ColumnObj.DataType="datetime"\r
+      if InStr(1,datatype,"DATETIME",1) > 0 then ColumnObj.DataType=Rico.Column.DataTypeValues.date\r
       dbViewer.AddColumn(ColumnObj)\r
     Next\r
     dbViewer.DefaultSort = colname0\r
-    dbViewer.TableName = "[" & TableName & "]"\r
     \r
   end if\r
 End Sub\r
index 63f2a6b..80ddee8 100644 (file)
@@ -3,12 +3,11 @@
 <%@ Register TagPrefix="My" TagName="dbLib" Src="dbConnect.ascx" %>\r
 <My:dbLib id='app' runat='server' />\r
 \r
-\r
 <script runat="server">\r
 \r
 Sub Page_Load(Sender As object, e As EventArgs)\r
   Session.Timeout=60\r
-  app.OpenGridForm(ex8)\r
+  app.OpenGridForm(shippers)\r
 End Sub\r
 \r
 </script>\r
@@ -21,11 +20,6 @@ End Sub
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<style type="text/css">
-div.ricoLG_cell {
-  white-space:nowrap;
-}
-</style>
 </head>\r
 \r
 \r
@@ -41,10 +35,11 @@ Updates are disabled on the database, so you will get an error message if you tr
 \r
 <p><strong>Shippers Table</strong></p>
 \r
-<Rico:LiveGridEdit runat='server' id='ex8' TableName='shippers' DefaultSort='ShipperID' frozenColumns='1'>\r
-  <Rico:Column runat='server' heading='ID'           width='50'  ColName='ShipperID'   EntryType='B' ColData='<auto>' />\r
-  <Rico:Column runat='server' heading='Company Name' width='150' ColName='CompanyName' EntryType='B' ConfirmDeleteColumn='true' />\r
-  <Rico:Column runat='server' heading='Phone Number' width='150' ColName='Phone'       EntryType='B' />\r
+<Rico:LiveGridEdit runat='server' id='shippers' DefaultSort='ShipperID' frozenColumns='1'>\r
+  <Rico:Table runat='server' TblName='shippers' />\r
+  <Rico:EditCol runat='server' heading='ID'           width='50'  ColName='ShipperID'   EntryType='I' ColData='<auto>' />\r
+  <Rico:EditCol runat='server' heading='Company Name' width='150' ColName='CompanyName' EntryType='B' ConfirmDeleteColumn='true' />\r
+  <Rico:EditCol runat='server' heading='Phone Number' width='150' ColName='Phone'       EntryType='B' />\r
 </Rico:LiveGridEdit>\r
 \r
 </body>\r
index 91bac32..9b67dca 100644 (file)
@@ -24,12 +24,9 @@ End Sub
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<style type="text/css">\r
-div.ricoLG_cell {\r
-  white-space:nowrap;\r
-}\r
-</style>\r
 </head>\r
+\r
+\r
 <body>\r
 \r
 <div id='explanation'>\r
@@ -46,23 +43,24 @@ Updates are disabled on the database, so you will get an error message if you tr
 </div>\r
 <p><strong>Employees Table</strong></p>\r
 \r
-<Rico:LiveGridEdit runat='server' id='emp' TableName='employees' DefaultSort='t.LastName,t.FirstName' menuEvent='click' frozenColumns='2' highlightElem='cursorRow'>\r
+<Rico:LiveGridEdit runat='server' id='emp' DefaultSort='t.LastName,t.FirstName' menuEvent='click' frozenColumns='2' highlightElem='cursorRow'>\r
+  <Rico:Table runat='server' TblName='employees' />\r
   <Rico:CalendarControl runat='server' id='Cal' icon='rico-icon rico-calarrow' />\r
-  <Rico:Column runat='server' ColName='EmployeeID' heading='Emp#'        width='60'  EntryType='B' ColData='<auto>' />\r
-  <Rico:Column runat='server' ColName='LastName'   heading='Last Name'   width='100' EntryType='B' />\r
-  <Rico:Column runat='server' ColName='FirstName'  heading='First Name'  width='100' EntryType='B' />\r
-  <Rico:Column runat='server' ColName='Title'      heading='Title'       width='120' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='TitleOfCourtesy' heading='Title (Courtesy)' width='90' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='BirthDate'  heading='Birth Date'  width='100' datatype='date' EntryType='D' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' ColName='HireDate'   heading='Hire Date'   width='100' datatype='date' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' ColName='Address'    heading='Address'     width='100' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='City'       heading='City'        width='100' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='Region'     heading='Region'      width='100' EntryType='N' />\r
-  <Rico:Column runat='server' ColName='PostalCode' heading='Postal Code' width='100' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='Country'    heading='Country'     width='100' EntryType='N' />\r
-  <Rico:Column runat='server' ColName='HomePhone'  heading='Home Phone'  width='100' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='Extension'  heading='Extension'   width='100' EntryType='T' />\r
-  <Rico:Column runat='server' ColName='ReportsTo'  heading='ReportsTo'   width='100' EntryType='SL' id='ReportsTo' />\r
+  <Rico:EditCol runat='server' ColName='EmployeeID' heading='Emp#'        width='60'  EntryType='B' ColData='<auto>' />\r
+  <Rico:EditCol runat='server' ColName='LastName'   heading='Last Name'   width='100' EntryType='B' />\r
+  <Rico:EditCol runat='server' ColName='FirstName'  heading='First Name'  width='100' EntryType='B' />\r
+  <Rico:EditCol runat='server' ColName='Title'      heading='Title'       width='120' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='TitleOfCourtesy' heading='Title (Courtesy)' width='90' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='BirthDate'  heading='Birth Date'  width='100' datatype='date' EntryType='D' SelectCtl='Cal' />\r
+  <Rico:EditCol runat='server' ColName='HireDate'   heading='Hire Date'   width='100' datatype='date' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
+  <Rico:EditCol runat='server' ColName='Address'    heading='Address'     width='100' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='City'       heading='City'        width='100' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='Region'     heading='Region'      width='100' EntryType='N' />\r
+  <Rico:EditCol runat='server' ColName='PostalCode' heading='Postal Code' width='100' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='Country'    heading='Country'     width='100' EntryType='N' />\r
+  <Rico:EditCol runat='server' ColName='HomePhone'  heading='Home Phone'  width='100' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='Extension'  heading='Extension'   width='100' EntryType='T' />\r
+  <Rico:EditCol runat='server' ColName='ReportsTo'  heading='ReportsTo'   width='100' EntryType='SL' id='ReportsTo' />\r
 </Rico:LiveGridEdit>\r
 \r
 </body>\r
index 7556633..e169b98 100644 (file)
@@ -9,22 +9,6 @@
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<script type='text/javascript'>\r
-Rico.onLoad( function() {\r
-  //alert('We are stopping here, at the start of the onLoad event, to show you that the grid is populated with data from a regular HTML table. This is what browsers with javascript disabled would display.');\r
-  var opts = {\r
-    menuEvent     : 'click',\r
-    frozenColumns : 1,\r
-    highlightElem: 'cursorRow',\r
-    defaultWidth : 90,\r
-    useUnformattedColWidth: false,\r
-    columnSpecs  : [{width:200},'specQty','specQty','specQty','specQty','specQty']\r
-  };\r
-  var ex1=new Rico.LiveGrid ('population', new Rico.Buffer.Base(document.getElementById('population').tBodies[0]), opts);\r
-  ex1.menu=new Rico.GridMenu({});\r
-});\r
-</script>\r
-\r
 </head>\r
 \r
 <body>\r
@@ -44,246 +28,249 @@ Department of Economic and Social Affairs of the United Nations Secretariat</a>
 <em>World Population Prospects: The 2008 Revision. Highlights.</em> New York: United Nations.  </p>                            \r
 </div>\r
 \r
-<p class="ricoBookmark"><span id="population_bookmark">&nbsp;</span></p>\r
-<table class="ricoLiveGrid" id="population">\r
-<thead>\r
- <tr>  <td class='ricoFrozen'></td>  <td colspan=5>Population (thousands)</td> </tr>\r
- <tr>  <td class='ricoFrozen'>Country or area</td>  <td>1950</td>  <td>2009</td>  <td>2015</td>  <td>2025</td>  <td>2050</td> </tr>\r
-</thead>\r
-<tbody>\r
- <tr>  <td>Afghanistan</td>  <td>8151</td>  <td>28150</td>  <td>34246</td>  <td>44970</td>  <td>73938</td> </tr>\r
- <tr>  <td>Albania</td>  <td>1215</td>  <td>3155</td>  <td>3256</td>  <td>3395</td>  <td>3303</td> </tr>\r
- <tr>  <td>Algeria</td>  <td>8753</td>  <td>34895</td>  <td>38088</td>  <td>42882</td>  <td>49610</td> </tr>\r
- <tr>  <td>American Samoa</td>  <td>19</td>  <td>67</td>  <td>74</td>  <td>86</td>  <td>107</td> </tr>\r
- <tr>  <td>Andorra</td>  <td>6</td>  <td>86</td>  <td>93</td>  <td>107</td>  <td>137</td> </tr>\r
- <tr>  <td>Angola</td>  <td>4148</td>  <td>18498</td>  <td>21690</td>  <td>27441</td>  <td>42267</td> </tr>\r
- <tr>  <td>Anguilla</td>  <td>5</td>  <td>15</td>  <td>17</td>  <td>18</td>  <td>20</td> </tr>\r
- <tr>  <td>Antigua and Barbuda</td>  <td>46</td>  <td>88</td>  <td>93</td>  <td>101</td>  <td>112</td> </tr>\r
- <tr>  <td>Argentina</td>  <td>17150</td>  <td>40276</td>  <td>42548</td>  <td>45883</td>  <td>50943</td> </tr>\r
- <tr>  <td>Armenia</td>  <td>1354</td>  <td>3083</td>  <td>3139</td>  <td>3181</td>  <td>3018</td> </tr>\r
- <tr>  <td>Aruba</td>  <td>38</td>  <td>107</td>  <td>109</td>  <td>112</td>  <td>106</td> </tr>\r
- <tr>  <td>Australia</td>  <td>8219</td>  <td>21293</td>  <td>22607</td>  <td>24703</td>  <td>28724</td> </tr>\r
- <tr>  <td>Austria</td>  <td>6936</td>  <td>8364</td>  <td>8467</td>  <td>8600</td>  <td>8515</td> </tr>\r
- <tr>  <td>Azerbaijan</td>  <td>2896</td>  <td>8832</td>  <td>9426</td>  <td>10128</td>  <td>10579</td> </tr>\r
- <tr>  <td>Bahamas</td>  <td>79</td>  <td>342</td>  <td>366</td>  <td>402</td>  <td>455</td> </tr>\r
- <tr>  <td>Bahrain</td>  <td>116</td>  <td>791</td>  <td>882</td>  <td>1021</td>  <td>1277</td> </tr>\r
- <tr>  <td>Bangladesh</td>  <td>43595</td>  <td>162221</td>  <td>175217</td>  <td>195012</td>  <td>222495</td> </tr>\r
- <tr>  <td>Barbados</td>  <td>211</td>  <td>256</td>  <td>260</td>  <td>262</td>  <td>237</td> </tr>\r
- <tr>  <td>Belarus</td>  <td>7745</td>  <td>9634</td>  <td>9355</td>  <td>8851</td>  <td>7275</td> </tr>\r
- <tr>  <td>Belgium</td>  <td>8628</td>  <td>10647</td>  <td>10878</td>  <td>11191</td>  <td>11493</td> </tr>\r
- <tr>  <td>Belize</td>  <td>69</td>  <td>307</td>  <td>344</td>  <td>404</td>  <td>506</td> </tr>\r
- <tr>  <td>Benin</td>  <td>2050</td>  <td>8935</td>  <td>10647</td>  <td>13767</td>  <td>21982</td> </tr>\r
- <tr>  <td>Bermuda</td>  <td>37</td>  <td>65</td>  <td>65</td>  <td>66</td>  <td>63</td> </tr>\r
- <tr>  <td>Bhutan</td>  <td>168</td>  <td>697</td>  <td>770</td>  <td>865</td>  <td>1013</td> </tr>\r
- <tr>  <td>Bolivia</td>  <td>2714</td>  <td>9863</td>  <td>10854</td>  <td>12368</td>  <td>14908</td> </tr>\r
- <tr>  <td>Bosnia and Herzegovina</td>  <td>2661</td>  <td>3767</td>  <td>3727</td>  <td>3608</td>  <td>3008</td> </tr>\r
- <tr>  <td>Botswana</td>  <td>413</td>  <td>1950</td>  <td>2106</td>  <td>2337</td>  <td>2758</td> </tr>\r
- <tr>  <td>Brazil</td>  <td>53975</td>  <td>193734</td>  <td>202866</td>  <td>213802</td>  <td>218512</td> </tr>\r
- <tr>  <td>British Virgin Islands</td>  <td>7</td>  <td>23</td>  <td>24</td>  <td>26</td>  <td>28</td> </tr>\r
- <tr>  <td>Brunei Darussalam</td>  <td>48</td>  <td>400</td>  <td>443</td>  <td>513</td>  <td>658</td> </tr>\r
- <tr>  <td>Bulgaria</td>  <td>7251</td>  <td>7545</td>  <td>7263</td>  <td>6752</td>  <td>5392</td> </tr>\r
- <tr>  <td>Burkina Faso</td>  <td>4080</td>  <td>15757</td>  <td>19013</td>  <td>24837</td>  <td>40830</td> </tr>\r
- <tr>  <td>Burundi</td>  <td>2456</td>  <td>8303</td>  <td>9413</td>  <td>11161</td>  <td>14846</td> </tr>\r
- <tr>  <td>Cambodia</td>  <td>4346</td>  <td>14805</td>  <td>16357</td>  <td>18973</td>  <td>23795</td> </tr>\r
- <tr>  <td>Cameroon</td>  <td>4466</td>  <td>19522</td>  <td>22169</td>  <td>26478</td>  <td>36736</td> </tr>\r
- <tr>  <td>Canada</td>  <td>13737</td>  <td>33573</td>  <td>35493</td>  <td>38659</td>  <td>44414</td> </tr>\r
- <tr>  <td>Cape Verde</td>  <td>146</td>  <td>506</td>  <td>548</td>  <td>616</td>  <td>703</td> </tr>\r
- <tr>  <td>Cayman Islands</td>  <td>7</td>  <td>56</td>  <td>59</td>  <td>63</td>  <td>66</td> </tr>\r
- <tr>  <td>Central African Republic</td>  <td>1327</td>  <td>4422</td>  <td>4927</td>  <td>5747</td>  <td>7603</td> </tr>\r
- <tr>  <td>Chad</td>  <td>2429</td>  <td>11206</td>  <td>13120</td>  <td>16906</td>  <td>27776</td> </tr>\r
- <tr>  <td>Channel Islands</td>  <td>102</td>  <td>150</td>  <td>151</td>  <td>152</td>  <td>144</td> </tr>\r
- <tr>  <td>Chile</td>  <td>6082</td>  <td>16970</td>  <td>17926</td>  <td>19266</td>  <td>20657</td> </tr>\r
- <tr>  <td>China</td>  <td>544951</td>  <td>1345751</td>  <td>1395998</td>  <td>1453140</td>  <td>1417045</td> </tr>\r
- <tr>  <td>China, Hong Kong SAR</td>  <td>1974</td>  <td>7022</td>  <td>7398</td>  <td>7969</td>  <td>8623</td> </tr>\r
- <tr>  <td>China, Macao SAR</td>  <td>190</td>  <td>538</td>  <td>568</td>  <td>603</td>  <td>593</td> </tr>\r
- <tr>  <td>Colombia</td>  <td>12000</td>  <td>45660</td>  <td>49385</td>  <td>54920</td>  <td>62877</td> </tr>\r
- <tr>  <td>Comoros</td>  <td>156</td>  <td>676</td>  <td>767</td>  <td>907</td>  <td>1226</td> </tr>\r
- <tr>  <td>Congo</td>  <td>808</td>  <td>3683</td>  <td>4225</td>  <td>5094</td>  <td>6863</td> </tr>\r
- <tr>  <td>Cook Islands</td>  <td>15</td>  <td>20</td>  <td>20</td>  <td>21</td>  <td>24</td> </tr>\r
- <tr>  <td>Costa Rica</td>  <td>966</td>  <td>4579</td>  <td>4957</td>  <td>5521</td>  <td>6373</td> </tr>\r
- <tr>  <td>Côte d'Ivoire</td>  <td>2505</td>  <td>21075</td>  <td>24210</td>  <td>29738</td>  <td>43373</td> </tr>\r
- <tr>  <td>Croatia</td>  <td>3850</td>  <td>4416</td>  <td>4370</td>  <td>4254</td>  <td>3825</td> </tr>\r
- <tr>  <td>Cuba</td>  <td>5920</td>  <td>11204</td>  <td>11213</td>  <td>11148</td>  <td>9725</td> </tr>\r
- <tr>  <td>Cyprus</td>  <td>494</td>  <td>871</td>  <td>925</td>  <td>1014</td>  <td>1175</td> </tr>\r
- <tr>  <td>Czech Republic</td>  <td>8925</td>  <td>10369</td>  <td>10510</td>  <td>10573</td>  <td>10294</td> </tr>\r
- <tr>  <td>Dem. People's Rep. of Korea</td>  <td>9737</td>  <td>23906</td>  <td>24399</td>  <td>25128</td>  <td>24562</td> </tr>\r
- <tr>  <td>Dem. Republic of the Congo</td>  <td>12184</td>  <td>66020</td>  <td>77419</td>  <td>98123</td>  <td>147512</td> </tr>\r
- <tr>  <td>Denmark</td>  <td>4271</td>  <td>5470</td>  <td>5523</td>  <td>5590</td>  <td>5551</td> </tr>\r
- <tr>  <td>Djibouti</td>  <td>62</td>  <td>864</td>  <td>953</td>  <td>1111</td>  <td>1469</td> </tr>\r
- <tr>  <td>Dominica</td>  <td>51</td>  <td>67</td>  <td>67</td>  <td>68</td>  <td>66</td> </tr>\r
- <tr>  <td>Dominican Republic</td>  <td>2427</td>  <td>10090</td>  <td>10867</td>  <td>11973</td>  <td>13441</td> </tr>\r
- <tr>  <td>Ecuador</td>  <td>3387</td>  <td>13625</td>  <td>14596</td>  <td>16074</td>  <td>17989</td> </tr>\r
- <tr>  <td>Egypt</td>  <td>21514</td>  <td>82999</td>  <td>91778</td>  <td>104970</td>  <td>129533</td> </tr>\r
- <tr>  <td>El Salvador</td>  <td>2200</td>  <td>6163</td>  <td>6383</td>  <td>6895</td>  <td>7882</td> </tr>\r
- <tr>  <td>Equatorial Guinea</td>  <td>226</td>  <td>676</td>  <td>781</td>  <td>971</td>  <td>1445</td> </tr>\r
- <tr>  <td>Eritrea</td>  <td>1141</td>  <td>5073</td>  <td>6009</td>  <td>7404</td>  <td>10787</td> </tr>\r
- <tr>  <td>Estonia</td>  <td>1101</td>  <td>1340</td>  <td>1337</td>  <td>1321</td>  <td>1233</td> </tr>\r
- <tr>  <td>Ethiopia</td>  <td>18434</td>  <td>82825</td>  <td>96237</td>  <td>119822</td>  <td>173811</td> </tr>\r
- <tr>  <td>Faeroe Islands</td>  <td>32</td>  <td>50</td>  <td>52</td>  <td>55</td>  <td>58</td> </tr>\r
- <tr>  <td>Falkland Islands (Malvinas)</td>  <td>2</td>  <td>3</td>  <td>3</td>  <td>3</td>  <td>3</td> </tr>\r
- <tr>  <td>Fiji</td>  <td>289</td>  <td>849</td>  <td>874</td>  <td>905</td>  <td>910</td> </tr>\r
- <tr>  <td>Finland</td>  <td>4009</td>  <td>5326</td>  <td>5432</td>  <td>5533</td>  <td>5445</td> </tr>\r
- <tr>  <td>France</td>  <td>41832</td>  <td>62343</td>  <td>63900</td>  <td>65769</td>  <td>67668</td> </tr>\r
- <tr>  <td>French Guiana</td>  <td>25</td>  <td>226</td>  <td>261</td>  <td>323</td>  <td>462</td> </tr>\r
- <tr>  <td>French Polynesia</td>  <td>61</td>  <td>269</td>  <td>289</td>  <td>318</td>  <td>354</td> </tr>\r
- <tr>  <td>Gabon</td>  <td>469</td>  <td>1475</td>  <td>1639</td>  <td>1915</td>  <td>2471</td> </tr>\r
- <tr>  <td>Gambia</td>  <td>258</td>  <td>1705</td>  <td>1985</td>  <td>2478</td>  <td>3763</td> </tr>\r
- <tr>  <td>Georgia</td>  <td>3527</td>  <td>4260</td>  <td>4084</td>  <td>3888</td>  <td>3267</td> </tr>\r
- <tr>  <td>Germany</td>  <td>68376</td>  <td>82167</td>  <td>81346</td>  <td>79258</td>  <td>70504</td> </tr>\r
- <tr>  <td>Ghana</td>  <td>4981</td>  <td>23837</td>  <td>26925</td>  <td>32233</td>  <td>45213</td> </tr>\r
- <tr>  <td>Gibraltar</td>  <td>20</td>  <td>31</td>  <td>31</td>  <td>32</td>  <td>30</td> </tr>\r
- <tr>  <td>Greece</td>  <td>7566</td>  <td>11161</td>  <td>11261</td>  <td>11274</td>  <td>10939</td> </tr>\r
- <tr>  <td>Greenland</td>  <td>23</td>  <td>57</td>  <td>57</td>  <td>56</td>  <td>50</td> </tr>\r
- <tr>  <td>Grenada</td>  <td>77</td>  <td>104</td>  <td>107</td>  <td>109</td>  <td>97</td> </tr>\r
- <tr>  <td>Guadeloupe</td>  <td>210</td>  <td>465</td>  <td>476</td>  <td>489</td>  <td>477</td> </tr>\r
- <tr>  <td>Guam</td>  <td>60</td>  <td>178</td>  <td>191</td>  <td>211</td>  <td>242</td> </tr>\r
- <tr>  <td>Guatemala</td>  <td>3146</td>  <td>14027</td>  <td>16227</td>  <td>19927</td>  <td>27480</td> </tr>\r
- <tr>  <td>Guinea</td>  <td>2619</td>  <td>10069</td>  <td>11844</td>  <td>15158</td>  <td>23975</td> </tr>\r
- <tr>  <td>Guinea-Bissau</td>  <td>518</td>  <td>1611</td>  <td>1848</td>  <td>2296</td>  <td>3555</td> </tr>\r
- <tr>  <td>Guyana</td>  <td>423</td>  <td>762</td>  <td>754</td>  <td>732</td>  <td>558</td> </tr>\r
- <tr>  <td>Haiti</td>  <td>3221</td>  <td>10033</td>  <td>10957</td>  <td>12476</td>  <td>15485</td> </tr>\r
- <tr>  <td>Holy See</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Honduras</td>  <td>1487</td>  <td>7466</td>  <td>8386</td>  <td>9844</td>  <td>12402</td> </tr>\r
- <tr>  <td>Hungary</td>  <td>9338</td>  <td>9993</td>  <td>9874</td>  <td>9647</td>  <td>8934</td> </tr>\r
- <tr>  <td>Iceland</td>  <td>143</td>  <td>323</td>  <td>353</td>  <td>384</td>  <td>407</td> </tr>\r
- <tr>  <td>India</td>  <td>371857</td>  <td>1198003</td>  <td>1294192</td>  <td>1431272</td>  <td>1613800</td> </tr>\r
- <tr>  <td>Indonesia</td>  <td>77152</td>  <td>229965</td>  <td>244191</td>  <td>263287</td>  <td>288110</td> </tr>\r
- <tr>  <td>Iran (Islamic Republic of)</td>  <td>16913</td>  <td>74196</td>  <td>79454</td>  <td>87134</td>  <td>96975</td> </tr>\r
- <tr>  <td>Iraq</td>  <td>5719</td>  <td>30747</td>  <td>35884</td>  <td>44692</td>  <td>63995</td> </tr>\r
- <tr>  <td>Ireland</td>  <td>2969</td>  <td>4515</td>  <td>4886</td>  <td>5370</td>  <td>6295</td> </tr>\r
- <tr>  <td>Isle of Man</td>  <td>55</td>  <td>80</td>  <td>81</td>  <td>80</td>  <td>75</td> </tr>\r
- <tr>  <td>Israel</td>  <td>1258</td>  <td>7170</td>  <td>7823</td>  <td>8769</td>  <td>10649</td> </tr>\r
- <tr>  <td>Italy</td>  <td>46367</td>  <td>59870</td>  <td>60604</td>  <td>60018</td>  <td>57066</td> </tr>\r
- <tr>  <td>Jamaica</td>  <td>1403</td>  <td>2719</td>  <td>2786</td>  <td>2866</td>  <td>2683</td> </tr>\r
- <tr>  <td>Japan</td>  <td>82824</td>  <td>127156</td>  <td>125791</td>  <td>120793</td>  <td>101659</td> </tr>\r
- <tr>  <td>Jordan</td>  <td>472</td>  <td>6316</td>  <td>6957</td>  <td>8088</td>  <td>10241</td> </tr>\r
- <tr>  <td>Kazakhstan</td>  <td>6703</td>  <td>15637</td>  <td>16289</td>  <td>17025</td>  <td>17848</td> </tr>\r
- <tr>  <td>Kenya</td>  <td>6077</td>  <td>39802</td>  <td>46433</td>  <td>57573</td>  <td>85410</td> </tr>\r
- <tr>  <td>Kiribati</td>  <td>26</td>  <td>98</td>  <td>107</td>  <td>123</td>  <td>151</td> </tr>\r
- <tr>  <td>Kuwait</td>  <td>152</td>  <td>2985</td>  <td>3378</td>  <td>3988</td>  <td>5240</td> </tr>\r
- <tr>  <td>Kyrgyzstan</td>  <td>1740</td>  <td>5482</td>  <td>5877</td>  <td>6378</td>  <td>6882</td> </tr>\r
- <tr>  <td>Lao People's Dem. Republic</td>  <td>1666</td>  <td>6320</td>  <td>7028</td>  <td>8273</td>  <td>10744</td> </tr>\r
- <tr>  <td>Latvia</td>  <td>1949</td>  <td>2249</td>  <td>2197</td>  <td>2101</td>  <td>1854</td> </tr>\r
- <tr>  <td>Lebanon</td>  <td>1443</td>  <td>4224</td>  <td>4426</td>  <td>4736</td>  <td>5033</td> </tr>\r
- <tr>  <td>Lesotho</td>  <td>734</td>  <td>2067</td>  <td>2168</td>  <td>2306</td>  <td>2491</td> </tr>\r
- <tr>  <td>Liberia</td>  <td>824</td>  <td>3955</td>  <td>4665</td>  <td>5858</td>  <td>8841</td> </tr>\r
- <tr>  <td>Libyan Arab Jamahiriya</td>  <td>1029</td>  <td>6420</td>  <td>7158</td>  <td>8144</td>  <td>9819</td> </tr>\r
- <tr>  <td>Liechtenstein</td>  <td>14</td>  <td>36</td>  <td>38</td>  <td>40</td>  <td>45</td> </tr>\r
- <tr>  <td>Lithuania</td>  <td>2567</td>  <td>3287</td>  <td>3143</td>  <td>2985</td>  <td>2579</td> </tr>\r
- <tr>  <td>Luxembourg</td>  <td>296</td>  <td>486</td>  <td>520</td>  <td>582</td>  <td>733</td> </tr>\r
- <tr>  <td>Madagascar</td>  <td>4084</td>  <td>19625</td>  <td>22853</td>  <td>28595</td>  <td>42693</td> </tr>\r
- <tr>  <td>Malawi</td>  <td>2881</td>  <td>15263</td>  <td>17998</td>  <td>23194</td>  <td>36575</td> </tr>\r
- <tr>  <td>Malaysia</td>  <td>6110</td>  <td>27468</td>  <td>30041</td>  <td>33770</td>  <td>39664</td> </tr>\r
- <tr>  <td>Maldives</td>  <td>82</td>  <td>309</td>  <td>338</td>  <td>384</td>  <td>455</td> </tr>\r
- <tr>  <td>Mali</td>  <td>4268</td>  <td>13010</td>  <td>14993</td>  <td>18603</td>  <td>28260</td> </tr>\r
- <tr>  <td>Malta</td>  <td>312</td>  <td>409</td>  <td>417</td>  <td>426</td>  <td>413</td> </tr>\r
- <tr>  <td>Marshall Islands</td>  <td>13</td>  <td>62</td>  <td>70</td>  <td>79</td>  <td>92</td> </tr>\r
- <tr>  <td>Martinique</td>  <td>222</td>  <td>405</td>  <td>411</td>  <td>418</td>  <td>393</td> </tr>\r
- <tr>  <td>Mauritania</td>  <td>651</td>  <td>3291</td>  <td>3732</td>  <td>4443</td>  <td>6061</td> </tr>\r
- <tr>  <td>Mauritius</td>  <td>493</td>  <td>1288</td>  <td>1337</td>  <td>1400</td>  <td>1426</td> </tr>\r
- <tr>  <td>Mayotte</td>  <td>15</td>  <td>194</td>  <td>224</td>  <td>277</td>  <td>386</td> </tr>\r
- <tr>  <td>Mexico</td>  <td>27741</td>  <td>109610</td>  <td>115528</td>  <td>123366</td>  <td>128964</td> </tr>\r
- <tr>  <td>Micronesia (Fed. States of)</td>  <td>32</td>  <td>111</td>  <td>114</td>  <td>122</td>  <td>128</td> </tr>\r
- <tr>  <td>Moldova (Republic of)</td>  <td>2341</td>  <td>3604</td>  <td>3462</td>  <td>3291</td>  <td>2734</td> </tr>\r
- <tr>  <td>Monaco</td>  <td>20</td>  <td>33</td>  <td>33</td>  <td>35</td>  <td>38</td> </tr>\r
- <tr>  <td>Mongolia</td>  <td>761</td>  <td>2671</td>  <td>2855</td>  <td>3134</td>  <td>3446</td> </tr>\r
- <tr>  <td>Montenegro</td>  <td>399</td>  <td>624</td>  <td>627</td>  <td>633</td>  <td>618</td> </tr>\r
- <tr>  <td>Montserrat</td>  <td>14</td>  <td>6</td>  <td>6</td>  <td>7</td>  <td>7</td> </tr>\r
- <tr>  <td>Morocco</td>  <td>8953</td>  <td>31993</td>  <td>34330</td>  <td>37865</td>  <td>42583</td> </tr>\r
- <tr>  <td>Mozambique</td>  <td>6442</td>  <td>22894</td>  <td>25957</td>  <td>31190</td>  <td>44148</td> </tr>\r
- <tr>  <td>Myanmar</td>  <td>17158</td>  <td>50020</td>  <td>53087</td>  <td>57585</td>  <td>63373</td> </tr>\r
- <tr>  <td>Namibia</td>  <td>485</td>  <td>2171</td>  <td>2412</td>  <td>2810</td>  <td>3588</td> </tr>\r
- <tr>  <td>Nauru</td>  <td>3</td>  <td>10</td>  <td>11</td>  <td>11</td>  <td>11</td> </tr>\r
- <tr>  <td>Nepal</td>  <td>8126</td>  <td>29331</td>  <td>32503</td>  <td>38031</td>  <td>49028</td> </tr>\r
- <tr>  <td>Netherlands</td>  <td>10114</td>  <td>16592</td>  <td>16915</td>  <td>17348</td>  <td>17399</td> </tr>\r
- <tr>  <td>Netherlands Antilles</td>  <td>112</td>  <td>198</td>  <td>207</td>  <td>210</td>  <td>192</td> </tr>\r
- <tr>  <td>New Caledonia</td>  <td>65</td>  <td>250</td>  <td>271</td>  <td>304</td>  <td>362</td> </tr>\r
- <tr>  <td>New Zealand</td>  <td>1908</td>  <td>4266</td>  <td>4492</td>  <td>4831</td>  <td>5349</td> </tr>\r
- <tr>  <td>Nicaragua</td>  <td>1295</td>  <td>5743</td>  <td>6265</td>  <td>7058</td>  <td>8143</td> </tr>\r
- <tr>  <td>Niger</td>  <td>2462</td>  <td>15290</td>  <td>19150</td>  <td>27388</td>  <td>58216</td> </tr>\r
- <tr>  <td>Nigeria</td>  <td>36680</td>  <td>154729</td>  <td>175928</td>  <td>210057</td>  <td>289083</td> </tr>\r
- <tr>  <td>Niue</td>  <td>5</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Northern Mariana Islands</td>  <td>7</td>  <td>87</td>  <td>96</td>  <td>111</td>  <td>151</td> </tr>\r
- <tr>  <td>Norway</td>  <td>3265</td>  <td>4812</td>  <td>5036</td>  <td>5365</td>  <td>5947</td> </tr>\r
- <tr>  <td>Occupied Palestinian Territory</td>  <td>1005</td>  <td>4277</td>  <td>5090</td>  <td>6553</td>  <td>10265</td> </tr>\r
- <tr>  <td>Oman</td>  <td>456</td>  <td>2845</td>  <td>3198</td>  <td>3782</td>  <td>4878</td> </tr>\r
- <tr>  <td>Pakistan</td>  <td>41177</td>  <td>180808</td>  <td>205504</td>  <td>246286</td>  <td>335195</td> </tr>\r
- <tr>  <td>Palau</td>  <td>7</td>  <td>20</td>  <td>21</td>  <td>23</td>  <td>26</td> </tr>\r
- <tr>  <td>Panama</td>  <td>860</td>  <td>3454</td>  <td>3773</td>  <td>4267</td>  <td>5092</td> </tr>\r
- <tr>  <td>Papua New Guinea</td>  <td>1798</td>  <td>6732</td>  <td>7678</td>  <td>9265</td>  <td>12871</td> </tr>\r
- <tr>  <td>Paraguay</td>  <td>1473</td>  <td>6349</td>  <td>7007</td>  <td>8026</td>  <td>9867</td> </tr>\r
- <tr>  <td>Peru</td>  <td>7632</td>  <td>29165</td>  <td>31197</td>  <td>34528</td>  <td>39776</td> </tr>\r
- <tr>  <td>Philippines</td>  <td>19996</td>  <td>91983</td>  <td>101734</td>  <td>117270</td>  <td>146156</td> </tr>\r
- <tr>  <td>Pitcairn</td>  <td>0</td>  <td>0</td>  <td>0</td>  <td>0</td>  <td>0</td> </tr>\r
- <tr>  <td>Poland</td>  <td>24824</td>  <td>38074</td>  <td>37788</td>  <td>36964</td>  <td>32013</td> </tr>\r
- <tr>  <td>Portugal</td>  <td>8405</td>  <td>10707</td>  <td>10787</td>  <td>10706</td>  <td>10015</td> </tr>\r
- <tr>  <td>Puerto Rico</td>  <td>2218</td>  <td>3982</td>  <td>4074</td>  <td>4176</td>  <td>4103</td> </tr>\r
- <tr>  <td>Qatar</td>  <td>25</td>  <td>1409</td>  <td>1630</td>  <td>1848</td>  <td>2316</td> </tr>\r
- <tr>  <td>Republic of Korea</td>  <td>19211</td>  <td>48333</td>  <td>49153</td>  <td>49484</td>  <td>44077</td> </tr>\r
- <tr>  <td>Réunion</td>  <td>248</td>  <td>827</td>  <td>886</td>  <td>973</td>  <td>1096</td> </tr>\r
- <tr>  <td>Romania</td>  <td>16311</td>  <td>21275</td>  <td>20787</td>  <td>19961</td>  <td>17279</td> </tr>\r
- <tr>  <td>Russian Federation</td>  <td>102702</td>  <td>140874</td>  <td>137983</td>  <td>132345</td>  <td>116097</td> </tr>\r
- <tr>  <td>Rwanda</td>  <td>2162</td>  <td>9998</td>  <td>11743</td>  <td>14676</td>  <td>22082</td> </tr>\r
- <tr>  <td>Saint Helena</td>  <td>5</td>  <td>4</td>  <td>4</td>  <td>5</td>  <td>5</td> </tr>\r
- <tr>  <td>Saint Kitts and Nevis</td>  <td>46</td>  <td>52</td>  <td>56</td>  <td>61</td>  <td>69</td> </tr>\r
- <tr>  <td>Saint Lucia</td>  <td>83</td>  <td>172</td>  <td>182</td>  <td>198</td>  <td>217</td> </tr>\r
- <tr>  <td>Saint Pierre and Miquelon</td>  <td>5</td>  <td>6</td>  <td>6</td>  <td>6</td>  <td>6</td> </tr>\r
- <tr>  <td>St. Vincent and the Grenadines</td>  <td>67</td>  <td>109</td>  <td>110</td>  <td>111</td>  <td>119</td> </tr>\r
- <tr>  <td>Samoa</td>  <td>82</td>  <td>179</td>  <td>181</td>  <td>188</td>  <td>192</td> </tr>\r
- <tr>  <td>San Marino</td>  <td>13</td>  <td>31</td>  <td>32</td>  <td>33</td>  <td>33</td> </tr>\r
- <tr>  <td>Sao Tome and Principe</td>  <td>60</td>  <td>163</td>  <td>180</td>  <td>216</td>  <td>296</td> </tr>\r
- <tr>  <td>Saudi Arabia</td>  <td>3201</td>  <td>25721</td>  <td>28933</td>  <td>34176</td>  <td>43658</td> </tr>\r
- <tr>  <td>Senegal</td>  <td>2416</td>  <td>12534</td>  <td>14526</td>  <td>17861</td>  <td>26102</td> </tr>\r
- <tr>  <td>Serbia</td>  <td>6732</td>  <td>9850</td>  <td>9828</td>  <td>9720</td>  <td>9193</td> </tr>\r
- <tr>  <td>Seychelles</td>  <td>36</td>  <td>84</td>  <td>86</td>  <td>91</td>  <td>97</td> </tr>\r
- <tr>  <td>Sierra Leone</td>  <td>1944</td>  <td>5696</td>  <td>6557</td>  <td>8112</td>  <td>12446</td> </tr>\r
- <tr>  <td>Singapore</td>  <td>1022</td>  <td>4737</td>  <td>5059</td>  <td>5362</td>  <td>5221</td> </tr>\r
- <tr>  <td>Slovakia</td>  <td>3463</td>  <td>5406</td>  <td>5437</td>  <td>5413</td>  <td>4917</td> </tr>\r
- <tr>  <td>Slovenia</td>  <td>1473</td>  <td>2020</td>  <td>2044</td>  <td>2050</td>  <td>1954</td> </tr>\r
- <tr>  <td>Solomon Islands</td>  <td>90</td>  <td>523</td>  <td>599</td>  <td>725</td>  <td>1007</td> </tr>\r
- <tr>  <td>Somalia</td>  <td>2264</td>  <td>9133</td>  <td>10731</td>  <td>13922</td>  <td>23522</td> </tr>\r
- <tr>  <td>South Africa</td>  <td>13683</td>  <td>50110</td>  <td>51684</td>  <td>53766</td>  <td>56802</td> </tr>\r
- <tr>  <td>Spain</td>  <td>28009</td>  <td>44904</td>  <td>47203</td>  <td>49265</td>  <td>51260</td> </tr>\r
- <tr>  <td>Sri Lanka</td>  <td>8241</td>  <td>20238</td>  <td>21167</td>  <td>22033</td>  <td>21705</td> </tr>\r
- <tr>  <td>Sudan</td>  <td>9190</td>  <td>42272</td>  <td>47730</td>  <td>56688</td>  <td>75884</td> </tr>\r
- <tr>  <td>Suriname</td>  <td>215</td>  <td>520</td>  <td>547</td>  <td>586</td>  <td>619</td> </tr>\r
- <tr>  <td>Swaziland</td>  <td>273</td>  <td>1185</td>  <td>1287</td>  <td>1455</td>  <td>1749</td> </tr>\r
- <tr>  <td>Sweden</td>  <td>7014</td>  <td>9249</td>  <td>9498</td>  <td>9915</td>  <td>10571</td> </tr>\r
- <tr>  <td>Switzerland</td>  <td>4693</td>  <td>7568</td>  <td>7736</td>  <td>8020</td>  <td>8514</td> </tr>\r
- <tr>  <td>Syrian Arab Republic</td>  <td>3536</td>  <td>21906</td>  <td>24494</td>  <td>28592</td>  <td>36911</td> </tr>\r
- <tr>  <td>Tajikistan</td>  <td>1532</td>  <td>6952</td>  <td>7761</td>  <td>9075</td>  <td>11111</td> </tr>\r
- <tr>  <td>TFYR Macedonia</td>  <td>1230</td>  <td>2042</td>  <td>2045</td>  <td>2037</td>  <td>1857</td> </tr>\r
- <tr>  <td>Thailand</td>  <td>20607</td>  <td>67764</td>  <td>69939</td>  <td>72628</td>  <td>73361</td> </tr>\r
- <tr>  <td>Timor-Leste</td>  <td>433</td>  <td>1134</td>  <td>1385</td>  <td>1869</td>  <td>3217</td> </tr>\r
- <tr>  <td>Togo</td>  <td>1329</td>  <td>6619</td>  <td>7607</td>  <td>9282</td>  <td>13196</td> </tr>\r
- <tr>  <td>Tokelau</td>  <td>2</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Tonga</td>  <td>47</td>  <td>104</td>  <td>105</td>  <td>112</td>  <td>123</td> </tr>\r
- <tr>  <td>Trinidad and Tobago</td>  <td>636</td>  <td>1339</td>  <td>1368</td>  <td>1388</td>  <td>1278</td> </tr>\r
- <tr>  <td>Tunisia</td>  <td>3530</td>  <td>10272</td>  <td>10884</td>  <td>11797</td>  <td>12711</td> </tr>\r
- <tr>  <td>Turkey</td>  <td>21484</td>  <td>74816</td>  <td>79966</td>  <td>87364</td>  <td>97389</td> </tr>\r
- <tr>  <td>Turkmenistan</td>  <td>1211</td>  <td>5110</td>  <td>5509</td>  <td>6072</td>  <td>6796</td> </tr>\r
- <tr>  <td>Turks and Caicos Islands</td>  <td>5</td>  <td>33</td>  <td>35</td>  <td>38</td>  <td>40</td> </tr>\r
- <tr>  <td>Tuvalu</td>  <td>5</td>  <td>10</td>  <td>10</td>  <td>11</td>  <td>11</td> </tr>\r
- <tr>  <td>Uganda</td>  <td>5158</td>  <td>32710</td>  <td>39710</td>  <td>53406</td>  <td>91271</td> </tr>\r
- <tr>  <td>Ukraine</td>  <td>37298</td>  <td>45708</td>  <td>44165</td>  <td>41617</td>  <td>35026</td> </tr>\r
- <tr>  <td>United Arab Emirates</td>  <td>70</td>  <td>4599</td>  <td>5193</td>  <td>6109</td>  <td>8253</td> </tr>\r
- <tr>  <td>United Kingdom</td>  <td>50616</td>  <td>61565</td>  <td>63528</td>  <td>66601</td>  <td>72365</td> </tr>\r
- <tr>  <td>United Republic of Tanzania</td>  <td>7650</td>  <td>43739</td>  <td>52109</td>  <td>67394</td>  <td>109450</td> </tr>\r
- <tr>  <td>United States of America</td>  <td>157813</td>  <td>314659</td>  <td>332334</td>  <td>358735</td>  <td>403932</td> </tr>\r
- <tr>  <td>United States Virgin Islands</td>  <td>27</td>  <td>110</td>  <td>108</td>  <td>103</td>  <td>75</td> </tr>\r
- <tr>  <td>Uruguay</td>  <td>2239</td>  <td>3361</td>  <td>3430</td>  <td>3546</td>  <td>3637</td> </tr>\r
- <tr>  <td>Uzbekistan</td>  <td>6314</td>  <td>27488</td>  <td>29456</td>  <td>32715</td>  <td>36439</td> </tr>\r
- <tr>  <td>Vanuatu</td>  <td>48</td>  <td>240</td>  <td>276</td>  <td>338</td>  <td>482</td> </tr>\r
- <tr>  <td>Venezuela (Bolivarian Republic of)</td>  <td>5094</td>  <td>28583</td>  <td>31292</td>  <td>35370</td>  <td>42042</td> </tr>\r
- <tr>  <td>Viet Nam</td>  <td>27367</td>  <td>88069</td>  <td>93647</td>  <td>102054</td>  <td>111666</td> </tr>\r
- <tr>  <td>Wallis and Futuna Islands</td>  <td>7</td>  <td>15</td>  <td>16</td>  <td>17</td>  <td>17</td> </tr>\r
- <tr>  <td>Western Sahara</td>  <td>14</td>  <td>513</td>  <td>625</td>  <td>775</td>  <td>938</td> </tr>\r
- <tr>  <td>Yemen</td>  <td>4316</td>  <td>23580</td>  <td>27819</td>  <td>35509</td>  <td>53689</td> </tr>\r
- <tr>  <td>Zambia</td>  <td>2340</td>  <td>12935</td>  <td>14980</td>  <td>18890</td>  <td>28957</td> </tr>\r
- <tr>  <td>Zimbabwe</td>  <td>2747</td>  <td>12523</td>  <td>14029</td>  <td>16780</td>  <td>22178</td> </tr>\r
-</tbody>\r
-</table>\r
+<Rico:LiveGrid runat='server' id='population' menuEvent='click' frozenColumns='1' highlightElem='cursorRow' defaultWidth='90' HtmlSourceId='population_data'>\r
+  <Rico:ColumnGroup runat='server' heading="" />\r
+  <Rico:Column runat='server' heading='Country or area' width='200' />\r
+  <Rico:ColumnGroup runat='server' heading="Population (thousands)" />\r
+  <Rico:Column runat='server' heading='1950' width='90' DataType='number' />\r
+  <Rico:Column runat='server' heading='2009' width='90' DataType='number' />\r
+  <Rico:Column runat='server' heading='2015' width='90' DataType='number' />\r
+  <Rico:Column runat='server' heading='2025' width='90' DataType='number' />\r
+  <Rico:Column runat='server' heading='2050' width='90' DataType='number' />\r
+</Rico:LiveGrid>\r
 \r
+<table id="population_data" style="display:none;">\r
+ <tr><td>Afghanistan</td><td>8151</td><td>28150</td><td>34246</td><td>44970</td><td>73938</td> </tr>\r
+ <tr><td>Albania</td><td>1215</td><td>3155</td><td>3256</td><td>3395</td><td>3303</td> </tr>\r
+ <tr><td>Algeria</td><td>8753</td><td>34895</td><td>38088</td><td>42882</td><td>49610</td> </tr>\r
+ <tr><td>American Samoa</td><td>19</td><td>67</td><td>74</td><td>86</td><td>107</td> </tr>\r
+ <tr><td>Andorra</td><td>6</td><td>86</td><td>93</td><td>107</td><td>137</td> </tr>\r
+ <tr><td>Angola</td><td>4148</td><td>18498</td><td>21690</td><td>27441</td><td>42267</td> </tr>\r
+ <tr><td>Anguilla</td><td>5</td><td>15</td><td>17</td><td>18</td><td>20</td> </tr>\r
+ <tr><td>Antigua and Barbuda</td><td>46</td><td>88</td><td>93</td><td>101</td><td>112</td> </tr>\r
+ <tr><td>Argentina</td><td>17150</td><td>40276</td><td>42548</td><td>45883</td><td>50943</td> </tr>\r
+ <tr><td>Armenia</td><td>1354</td><td>3083</td><td>3139</td><td>3181</td><td>3018</td> </tr>\r
+ <tr><td>Aruba</td><td>38</td><td>107</td><td>109</td><td>112</td><td>106</td> </tr>\r
+ <tr><td>Australia</td><td>8219</td><td>21293</td><td>22607</td><td>24703</td><td>28724</td> </tr>\r
+ <tr><td>Austria</td><td>6936</td><td>8364</td><td>8467</td><td>8600</td><td>8515</td> </tr>\r
+ <tr><td>Azerbaijan</td><td>2896</td><td>8832</td><td>9426</td><td>10128</td><td>10579</td> </tr>\r
+ <tr><td>Bahamas</td><td>79</td><td>342</td><td>366</td><td>402</td><td>455</td> </tr>\r
+ <tr><td>Bahrain</td><td>116</td><td>791</td><td>882</td><td>1021</td><td>1277</td> </tr>\r
+ <tr><td>Bangladesh</td><td>43595</td><td>162221</td><td>175217</td><td>195012</td><td>222495</td> </tr>\r
+ <tr><td>Barbados</td><td>211</td><td>256</td><td>260</td><td>262</td><td>237</td> </tr>\r
+ <tr><td>Belarus</td><td>7745</td><td>9634</td><td>9355</td><td>8851</td><td>7275</td> </tr>\r
+ <tr><td>Belgium</td><td>8628</td><td>10647</td><td>10878</td><td>11191</td><td>11493</td> </tr>\r
+ <tr><td>Belize</td><td>69</td><td>307</td><td>344</td><td>404</td><td>506</td> </tr>\r
+ <tr><td>Benin</td><td>2050</td><td>8935</td><td>10647</td><td>13767</td><td>21982</td> </tr>\r
+ <tr><td>Bermuda</td><td>37</td><td>65</td><td>65</td><td>66</td><td>63</td> </tr>\r
+ <tr><td>Bhutan</td><td>168</td><td>697</td><td>770</td><td>865</td><td>1013</td> </tr>\r
+ <tr><td>Bolivia</td><td>2714</td><td>9863</td><td>10854</td><td>12368</td><td>14908</td> </tr>\r
+ <tr><td>Bosnia and Herzegovina</td><td>2661</td><td>3767</td><td>3727</td><td>3608</td><td>3008</td> </tr>\r
+ <tr><td>Botswana</td><td>413</td><td>1950</td><td>2106</td><td>2337</td><td>2758</td> </tr>\r
+ <tr><td>Brazil</td><td>53975</td><td>193734</td><td>202866</td><td>213802</td><td>218512</td> </tr>\r
+ <tr><td>British Virgin Islands</td><td>7</td><td>23</td><td>24</td><td>26</td><td>28</td> </tr>\r
+ <tr><td>Brunei Darussalam</td><td>48</td><td>400</td><td>443</td><td>513</td><td>658</td> </tr>\r
+ <tr><td>Bulgaria</td><td>7251</td><td>7545</td><td>7263</td><td>6752</td><td>5392</td> </tr>\r
+ <tr><td>Burkina Faso</td><td>4080</td><td>15757</td><td>19013</td><td>24837</td><td>40830</td> </tr>\r
+ <tr><td>Burundi</td><td>2456</td><td>8303</td><td>9413</td><td>11161</td><td>14846</td> </tr>\r
+ <tr><td>Cambodia</td><td>4346</td><td>14805</td><td>16357</td><td>18973</td><td>23795</td> </tr>\r
+ <tr><td>Cameroon</td><td>4466</td><td>19522</td><td>22169</td><td>26478</td><td>36736</td> </tr>\r
+ <tr><td>Canada</td><td>13737</td><td>33573</td><td>35493</td><td>38659</td><td>44414</td> </tr>\r
+ <tr><td>Cape Verde</td><td>146</td><td>506</td><td>548</td><td>616</td><td>703</td> </tr>\r
+ <tr><td>Cayman Islands</td><td>7</td><td>56</td><td>59</td><td>63</td><td>66</td> </tr>\r
+ <tr><td>Central African Republic</td><td>1327</td><td>4422</td><td>4927</td><td>5747</td><td>7603</td> </tr>\r
+ <tr><td>Chad</td><td>2429</td><td>11206</td><td>13120</td><td>16906</td><td>27776</td> </tr>\r
+ <tr><td>Channel Islands</td><td>102</td><td>150</td><td>151</td><td>152</td><td>144</td> </tr>\r
+ <tr><td>Chile</td><td>6082</td><td>16970</td><td>17926</td><td>19266</td><td>20657</td> </tr>\r
+ <tr><td>China</td><td>544951</td><td>1345751</td><td>1395998</td><td>1453140</td><td>1417045</td> </tr>\r
+ <tr><td>China, Hong Kong SAR</td><td>1974</td><td>7022</td><td>7398</td><td>7969</td><td>8623</td> </tr>\r
+ <tr><td>China, Macao SAR</td><td>190</td><td>538</td><td>568</td><td>603</td><td>593</td> </tr>\r
+ <tr><td>Colombia</td><td>12000</td><td>45660</td><td>49385</td><td>54920</td><td>62877</td> </tr>\r
+ <tr><td>Comoros</td><td>156</td><td>676</td><td>767</td><td>907</td><td>1226</td> </tr>\r
+ <tr><td>Congo</td><td>808</td><td>3683</td><td>4225</td><td>5094</td><td>6863</td> </tr>\r
+ <tr><td>Cook Islands</td><td>15</td><td>20</td><td>20</td><td>21</td><td>24</td> </tr>\r
+ <tr><td>Costa Rica</td><td>966</td><td>4579</td><td>4957</td><td>5521</td><td>6373</td> </tr>\r
+ <tr><td>Côte d'Ivoire</td><td>2505</td><td>21075</td><td>24210</td><td>29738</td><td>43373</td> </tr>\r
+ <tr><td>Croatia</td><td>3850</td><td>4416</td><td>4370</td><td>4254</td><td>3825</td> </tr>\r
+ <tr><td>Cuba</td><td>5920</td><td>11204</td><td>11213</td><td>11148</td><td>9725</td> </tr>\r
+ <tr><td>Cyprus</td><td>494</td><td>871</td><td>925</td><td>1014</td><td>1175</td> </tr>\r
+ <tr><td>Czech Republic</td><td>8925</td><td>10369</td><td>10510</td><td>10573</td><td>10294</td> </tr>\r
+ <tr><td>Dem. People's Rep. of Korea</td><td>9737</td><td>23906</td><td>24399</td><td>25128</td><td>24562</td> </tr>\r
+ <tr><td>Dem. Republic of the Congo</td><td>12184</td><td>66020</td><td>77419</td><td>98123</td><td>147512</td> </tr>\r
+ <tr><td>Denmark</td><td>4271</td><td>5470</td><td>5523</td><td>5590</td><td>5551</td> </tr>\r
+ <tr><td>Djibouti</td><td>62</td><td>864</td><td>953</td><td>1111</td><td>1469</td> </tr>\r
+ <tr><td>Dominica</td><td>51</td><td>67</td><td>67</td><td>68</td><td>66</td> </tr>\r
+ <tr><td>Dominican Republic</td><td>2427</td><td>10090</td><td>10867</td><td>11973</td><td>13441</td> </tr>\r
+ <tr><td>Ecuador</td><td>3387</td><td>13625</td><td>14596</td><td>16074</td><td>17989</td> </tr>\r
+ <tr><td>Egypt</td><td>21514</td><td>82999</td><td>91778</td><td>104970</td><td>129533</td> </tr>\r
+ <tr><td>El Salvador</td><td>2200</td><td>6163</td><td>6383</td><td>6895</td><td>7882</td> </tr>\r
+ <tr><td>Equatorial Guinea</td><td>226</td><td>676</td><td>781</td><td>971</td><td>1445</td> </tr>\r
+ <tr><td>Eritrea</td><td>1141</td><td>5073</td><td>6009</td><td>7404</td><td>10787</td> </tr>\r
+ <tr><td>Estonia</td><td>1101</td><td>1340</td><td>1337</td><td>1321</td><td>1233</td> </tr>\r
+ <tr><td>Ethiopia</td><td>18434</td><td>82825</td><td>96237</td><td>119822</td><td>173811</td> </tr>\r
+ <tr><td>Faeroe Islands</td><td>32</td><td>50</td><td>52</td><td>55</td><td>58</td> </tr>\r
+ <tr><td>Falkland Islands (Malvinas)</td>  <td>2</td><td>3</td><td>3</td><td>3</td><td>3</td> </tr>\r
+ <tr><td>Fiji</td><td>289</td><td>849</td><td>874</td><td>905</td><td>910</td> </tr>\r
+ <tr><td>Finland</td><td>4009</td><td>5326</td><td>5432</td><td>5533</td><td>5445</td> </tr>\r
+ <tr><td>France</td><td>41832</td><td>62343</td><td>63900</td><td>65769</td><td>67668</td> </tr>\r
+ <tr><td>French Guiana</td><td>25</td><td>226</td><td>261</td><td>323</td><td>462</td> </tr>\r
+ <tr><td>French Polynesia</td><td>61</td><td>269</td><td>289</td><td>318</td><td>354</td> </tr>\r
+ <tr><td>Gabon</td><td>469</td><td>1475</td><td>1639</td><td>1915</td><td>2471</td> </tr>\r
+ <tr><td>Gambia</td><td>258</td><td>1705</td><td>1985</td><td>2478</td><td>3763</td> </tr>\r
+ <tr><td>Georgia</td><td>3527</td><td>4260</td><td>4084</td><td>3888</td><td>3267</td> </tr>\r
+ <tr><td>Germany</td><td>68376</td><td>82167</td><td>81346</td><td>79258</td><td>70504</td> </tr>\r
+ <tr><td>Ghana</td><td>4981</td><td>23837</td><td>26925</td><td>32233</td><td>45213</td> </tr>\r
+ <tr><td>Gibraltar</td><td>20</td><td>31</td><td>31</td><td>32</td><td>30</td> </tr>\r
+ <tr><td>Greece</td><td>7566</td><td>11161</td><td>11261</td><td>11274</td><td>10939</td> </tr>\r
+ <tr><td>Greenland</td><td>23</td><td>57</td><td>57</td><td>56</td><td>50</td> </tr>\r
+ <tr><td>Grenada</td><td>77</td><td>104</td><td>107</td><td>109</td><td>97</td> </tr>\r
+ <tr><td>Guadeloupe</td><td>210</td><td>465</td><td>476</td><td>489</td><td>477</td> </tr>\r
+ <tr><td>Guam</td><td>60</td><td>178</td><td>191</td><td>211</td><td>242</td> </tr>\r
+ <tr><td>Guatemala</td><td>3146</td><td>14027</td><td>16227</td><td>19927</td><td>27480</td> </tr>\r
+ <tr><td>Guinea</td><td>2619</td><td>10069</td><td>11844</td><td>15158</td><td>23975</td> </tr>\r
+ <tr><td>Guinea-Bissau</td><td>518</td><td>1611</td><td>1848</td><td>2296</td><td>3555</td> </tr>\r
+ <tr><td>Guyana</td><td>423</td><td>762</td><td>754</td><td>732</td><td>558</td> </tr>\r
+ <tr><td>Haiti</td><td>3221</td><td>10033</td><td>10957</td><td>12476</td><td>15485</td> </tr>\r
+ <tr><td>Holy See</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td> </tr>\r
+ <tr><td>Honduras</td><td>1487</td><td>7466</td><td>8386</td><td>9844</td><td>12402</td> </tr>\r
+ <tr><td>Hungary</td><td>9338</td><td>9993</td><td>9874</td><td>9647</td><td>8934</td> </tr>\r
+ <tr><td>Iceland</td><td>143</td><td>323</td><td>353</td><td>384</td><td>407</td> </tr>\r
+ <tr><td>India</td><td>371857</td><td>1198003</td><td>1294192</td><td>1431272</td><td>1613800</td> </tr>\r
+ <tr><td>Indonesia</td><td>77152</td><td>229965</td><td>244191</td><td>263287</td><td>288110</td> </tr>\r
+ <tr><td>Iran (Islamic Republic of)</td>  <td>16913</td><td>74196</td><td>79454</td><td>87134</td><td>96975</td> </tr>\r
+ <tr><td>Iraq</td><td>5719</td><td>30747</td><td>35884</td><td>44692</td><td>63995</td> </tr>\r
+ <tr><td>Ireland</td><td>2969</td><td>4515</td><td>4886</td><td>5370</td><td>6295</td> </tr>\r
+ <tr><td>Isle of Man</td><td>55</td><td>80</td><td>81</td><td>80</td><td>75</td> </tr>\r
+ <tr><td>Israel</td><td>1258</td><td>7170</td><td>7823</td><td>8769</td><td>10649</td> </tr>\r
+ <tr><td>Italy</td><td>46367</td><td>59870</td><td>60604</td><td>60018</td><td>57066</td> </tr>\r
+ <tr><td>Jamaica</td><td>1403</td><td>2719</td><td>2786</td><td>2866</td><td>2683</td> </tr>\r
+ <tr><td>Japan</td><td>82824</td><td>127156</td><td>125791</td><td>120793</td><td>101659</td> </tr>\r
+ <tr><td>Jordan</td><td>472</td><td>6316</td><td>6957</td><td>8088</td><td>10241</td> </tr>\r
+ <tr><td>Kazakhstan</td><td>6703</td><td>15637</td><td>16289</td><td>17025</td><td>17848</td> </tr>\r
+ <tr><td>Kenya</td><td>6077</td><td>39802</td><td>46433</td><td>57573</td><td>85410</td> </tr>\r
+ <tr><td>Kiribati</td><td>26</td><td>98</td><td>107</td><td>123</td><td>151</td> </tr>\r
+ <tr><td>Kuwait</td><td>152</td><td>2985</td><td>3378</td><td>3988</td><td>5240</td> </tr>\r
+ <tr><td>Kyrgyzstan</td><td>1740</td><td>5482</td><td>5877</td><td>6378</td><td>6882</td> </tr>\r
+ <tr><td>Lao People's Dem. Republic</td><td>1666</td><td>6320</td><td>7028</td><td>8273</td><td>10744</td> </tr>\r
+ <tr><td>Latvia</td><td>1949</td><td>2249</td><td>2197</td><td>2101</td><td>1854</td> </tr>\r
+ <tr><td>Lebanon</td><td>1443</td><td>4224</td><td>4426</td><td>4736</td><td>5033</td> </tr>\r
+ <tr><td>Lesotho</td><td>734</td><td>2067</td><td>2168</td><td>2306</td><td>2491</td> </tr>\r
+ <tr><td>Liberia</td><td>824</td><td>3955</td><td>4665</td><td>5858</td><td>8841</td> </tr>\r
+ <tr><td>Libyan Arab Jamahiriya</td><td>1029</td><td>6420</td><td>7158</td><td>8144</td><td>9819</td> </tr>\r
+ <tr><td>Liechtenstein</td><td>14</td><td>36</td><td>38</td><td>40</td><td>45</td> </tr>\r
+ <tr><td>Lithuania</td><td>2567</td><td>3287</td><td>3143</td><td>2985</td><td>2579</td> </tr>\r
+ <tr><td>Luxembourg</td><td>296</td><td>486</td><td>520</td><td>582</td><td>733</td> </tr>\r
+ <tr><td>Madagascar</td><td>4084</td><td>19625</td><td>22853</td><td>28595</td><td>42693</td> </tr>\r
+ <tr><td>Malawi</td><td>2881</td><td>15263</td><td>17998</td><td>23194</td><td>36575</td> </tr>\r
+ <tr><td>Malaysia</td><td>6110</td><td>27468</td><td>30041</td><td>33770</td><td>39664</td> </tr>\r
+ <tr><td>Maldives</td><td>82</td><td>309</td><td>338</td><td>384</td><td>455</td> </tr>\r
+ <tr><td>Mali</td><td>4268</td><td>13010</td><td>14993</td><td>18603</td><td>28260</td> </tr>\r
+ <tr><td>Malta</td><td>312</td><td>409</td><td>417</td><td>426</td><td>413</td> </tr>\r
+ <tr><td>Marshall Islands</td><td>13</td><td>62</td><td>70</td><td>79</td><td>92</td> </tr>\r
+ <tr><td>Martinique</td><td>222</td><td>405</td><td>411</td><td>418</td><td>393</td> </tr>\r
+ <tr><td>Mauritania</td><td>651</td><td>3291</td><td>3732</td><td>4443</td><td>6061</td> </tr>\r
+ <tr><td>Mauritius</td><td>493</td><td>1288</td><td>1337</td><td>1400</td><td>1426</td> </tr>\r
+ <tr><td>Mayotte</td><td>15</td><td>194</td><td>224</td><td>277</td><td>386</td> </tr>\r
+ <tr><td>Mexico</td><td>27741</td><td>109610</td><td>115528</td><td>123366</td><td>128964</td> </tr>\r
+ <tr><td>Micronesia (Fed. States of)</td>  <td>32</td><td>111</td><td>114</td><td>122</td><td>128</td> </tr>\r
+ <tr><td>Moldova (Republic of)</td>  <td>2341</td><td>3604</td><td>3462</td><td>3291</td><td>2734</td> </tr>\r
+ <tr><td>Monaco</td><td>20</td><td>33</td><td>33</td><td>35</td><td>38</td> </tr>\r
+ <tr><td>Mongolia</td><td>761</td><td>2671</td><td>2855</td><td>3134</td><td>3446</td> </tr>\r
+ <tr><td>Montenegro</td><td>399</td><td>624</td><td>627</td><td>633</td><td>618</td> </tr>\r
+ <tr><td>Montserrat</td><td>14</td><td>6</td><td>6</td><td>7</td><td>7</td> </tr>\r
+ <tr><td>Morocco</td><td>8953</td><td>31993</td><td>34330</td><td>37865</td><td>42583</td> </tr>\r
+ <tr><td>Mozambique</td><td>6442</td><td>22894</td><td>25957</td><td>31190</td><td>44148</td> </tr>\r
+ <tr><td>Myanmar</td><td>17158</td><td>50020</td><td>53087</td><td>57585</td><td>63373</td> </tr>\r
+ <tr><td>Namibia</td><td>485</td><td>2171</td><td>2412</td><td>2810</td><td>3588</td> </tr>\r
+ <tr><td>Nauru</td><td>3</td><td>10</td><td>11</td><td>11</td><td>11</td> </tr>\r
+ <tr><td>Nepal</td><td>8126</td><td>29331</td><td>32503</td><td>38031</td><td>49028</td> </tr>\r
+ <tr><td>Netherlands</td><td>10114</td><td>16592</td><td>16915</td><td>17348</td><td>17399</td> </tr>\r
+ <tr><td>Netherlands Antilles</td><td>112</td><td>198</td><td>207</td><td>210</td><td>192</td> </tr>\r
+ <tr><td>New Caledonia</td><td>65</td><td>250</td><td>271</td><td>304</td><td>362</td> </tr>\r
+ <tr><td>New Zealand</td><td>1908</td><td>4266</td><td>4492</td><td>4831</td><td>5349</td> </tr>\r
+ <tr><td>Nicaragua</td><td>1295</td><td>5743</td><td>6265</td><td>7058</td><td>8143</td> </tr>\r
+ <tr><td>Niger</td><td>2462</td><td>15290</td><td>19150</td><td>27388</td><td>58216</td> </tr>\r
+ <tr><td>Nigeria</td><td>36680</td><td>154729</td><td>175928</td><td>210057</td><td>289083</td> </tr>\r
+ <tr><td>Niue</td><td>5</td><td>1</td><td>1</td><td>1</td><td>1</td> </tr>\r
+ <tr><td>Northern Mariana Islands</td><td>7</td><td>87</td><td>96</td><td>111</td><td>151</td> </tr>\r
+ <tr><td>Norway</td><td>3265</td><td>4812</td><td>5036</td><td>5365</td><td>5947</td> </tr>\r
+ <tr><td>Occupied Palestinian Territory</td><td>1005</td><td>4277</td><td>5090</td><td>6553</td><td>10265</td> </tr>\r
+ <tr><td>Oman</td><td>456</td><td>2845</td><td>3198</td><td>3782</td><td>4878</td> </tr>\r
+ <tr><td>Pakistan</td><td>41177</td><td>180808</td><td>205504</td><td>246286</td><td>335195</td> </tr>\r
+ <tr><td>Palau</td><td>7</td><td>20</td><td>21</td><td>23</td><td>26</td> </tr>\r
+ <tr><td>Panama</td><td>860</td><td>3454</td><td>3773</td><td>4267</td><td>5092</td> </tr>\r
+ <tr><td>Papua New Guinea</td><td>1798</td><td>6732</td><td>7678</td><td>9265</td><td>12871</td> </tr>\r
+ <tr><td>Paraguay</td><td>1473</td><td>6349</td><td>7007</td><td>8026</td><td>9867</td> </tr>\r
+ <tr><td>Peru</td><td>7632</td><td>29165</td><td>31197</td><td>34528</td><td>39776</td> </tr>\r
+ <tr><td>Philippines</td><td>19996</td><td>91983</td><td>101734</td><td>117270</td><td>146156</td> </tr>\r
+ <tr><td>Pitcairn</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td> </tr>\r
+ <tr><td>Poland</td><td>24824</td><td>38074</td><td>37788</td><td>36964</td><td>32013</td> </tr>\r
+ <tr><td>Portugal</td><td>8405</td><td>10707</td><td>10787</td><td>10706</td><td>10015</td> </tr>\r
+ <tr><td>Puerto Rico</td><td>2218</td><td>3982</td><td>4074</td><td>4176</td><td>4103</td> </tr>\r
+ <tr><td>Qatar</td><td>25</td><td>1409</td><td>1630</td><td>1848</td><td>2316</td> </tr>\r
+ <tr><td>Republic of Korea</td><td>19211</td><td>48333</td><td>49153</td><td>49484</td><td>44077</td> </tr>\r
+ <tr><td>Réunion</td><td>248</td><td>827</td><td>886</td><td>973</td><td>1096</td> </tr>\r
+ <tr><td>Romania</td><td>16311</td><td>21275</td><td>20787</td><td>19961</td><td>17279</td> </tr>\r
+ <tr><td>Russian Federation</td><td>102702</td><td>140874</td><td>137983</td><td>132345</td><td>116097</td> </tr>\r
+ <tr><td>Rwanda</td><td>2162</td><td>9998</td><td>11743</td><td>14676</td><td>22082</td> </tr>\r
+ <tr><td>Saint Helena</td><td>5</td><td>4</td><td>4</td><td>5</td><td>5</td> </tr>\r
+ <tr><td>Saint Kitts and Nevis</td><td>46</td><td>52</td><td>56</td><td>61</td><td>69</td> </tr>\r
+ <tr><td>Saint Lucia</td><td>83</td><td>172</td><td>182</td><td>198</td><td>217</td> </tr>\r
+ <tr><td>Saint Pierre and Miquelon</td><td>5</td><td>6</td><td>6</td><td>6</td><td>6</td> </tr>\r
+ <tr><td>St. Vincent and the Grenadines</td><td>67</td><td>109</td><td>110</td><td>111</td><td>119</td> </tr>\r
+ <tr><td>Samoa</td><td>82</td><td>179</td><td>181</td><td>188</td><td>192</td> </tr>\r
+ <tr><td>San Marino</td><td>13</td><td>31</td><td>32</td><td>33</td><td>33</td> </tr>\r
+ <tr><td>Sao Tome and Principe</td><td>60</td><td>163</td><td>180</td><td>216</td><td>296</td> </tr>\r
+ <tr><td>Saudi Arabia</td><td>3201</td><td>25721</td><td>28933</td><td>34176</td><td>43658</td> </tr>\r
+ <tr><td>Senegal</td><td>2416</td><td>12534</td><td>14526</td><td>17861</td><td>26102</td> </tr>\r
+ <tr><td>Serbia</td><td>6732</td><td>9850</td><td>9828</td><td>9720</td><td>9193</td> </tr>\r
+ <tr><td>Seychelles</td><td>36</td><td>84</td><td>86</td><td>91</td><td>97</td> </tr>\r
+ <tr><td>Sierra Leone</td><td>1944</td><td>5696</td><td>6557</td><td>8112</td><td>12446</td> </tr>\r
+ <tr><td>Singapore</td><td>1022</td><td>4737</td><td>5059</td><td>5362</td><td>5221</td> </tr>\r
+ <tr><td>Slovakia</td><td>3463</td><td>5406</td><td>5437</td><td>5413</td><td>4917</td> </tr>\r
+ <tr><td>Slovenia</td><td>1473</td><td>2020</td><td>2044</td><td>2050</td><td>1954</td> </tr>\r
+ <tr><td>Solomon Islands</td><td>90</td><td>523</td><td>599</td><td>725</td><td>1007</td> </tr>\r
+ <tr><td>Somalia</td><td>2264</td><td>9133</td><td>10731</td><td>13922</td><td>23522</td> </tr>\r
+ <tr><td>South Africa</td><td>13683</td><td>50110</td><td>51684</td><td>53766</td><td>56802</td> </tr>\r
+ <tr><td>Spain</td><td>28009</td><td>44904</td><td>47203</td><td>49265</td><td>51260</td> </tr>\r
+ <tr><td>Sri Lanka</td><td>8241</td><td>20238</td><td>21167</td><td>22033</td><td>21705</td> </tr>\r
+ <tr><td>Sudan</td><td>9190</td><td>42272</td><td>47730</td><td>56688</td><td>75884</td> </tr>\r
+ <tr><td>Suriname</td><td>215</td><td>520</td><td>547</td><td>586</td><td>619</td> </tr>\r
+ <tr><td>Swaziland</td><td>273</td><td>1185</td><td>1287</td><td>1455</td><td>1749</td> </tr>\r
+ <tr><td>Sweden</td><td>7014</td><td>9249</td><td>9498</td><td>9915</td><td>10571</td> </tr>\r
+ <tr><td>Switzerland</td><td>4693</td><td>7568</td><td>7736</td><td>8020</td><td>8514</td> </tr>\r
+ <tr><td>Syrian Arab Republic</td><td>3536</td><td>21906</td><td>24494</td><td>28592</td><td>36911</td> </tr>\r
+ <tr><td>Tajikistan</td><td>1532</td><td>6952</td><td>7761</td><td>9075</td><td>11111</td> </tr>\r
+ <tr><td>TFYR Macedonia</td><td>1230</td><td>2042</td><td>2045</td><td>2037</td><td>1857</td> </tr>\r
+ <tr><td>Thailand</td><td>20607</td><td>67764</td><td>69939</td><td>72628</td><td>73361</td> </tr>\r
+ <tr><td>Timor-Leste</td><td>433</td><td>1134</td><td>1385</td><td>1869</td><td>3217</td> </tr>\r
+ <tr><td>Togo</td><td>1329</td><td>6619</td><td>7607</td><td>9282</td><td>13196</td> </tr>\r
+ <tr><td>Tokelau</td><td>2</td><td>1</td><td>1</td><td>1</td><td>1</td> </tr>\r
+ <tr><td>Tonga</td><td>47</td><td>104</td><td>105</td><td>112</td><td>123</td> </tr>\r
+ <tr><td>Trinidad and Tobago</td><td>636</td><td>1339</td><td>1368</td><td>1388</td><td>1278</td> </tr>\r
+ <tr><td>Tunisia</td><td>3530</td><td>10272</td><td>10884</td><td>11797</td><td>12711</td> </tr>\r
+ <tr><td>Turkey</td><td>21484</td><td>74816</td><td>79966</td><td>87364</td><td>97389</td> </tr>\r
+ <tr><td>Turkmenistan</td><td>1211</td><td>5110</td><td>5509</td><td>6072</td><td>6796</td> </tr>\r
+ <tr><td>Turks and Caicos Islands</td><td>5</td><td>33</td><td>35</td><td>38</td><td>40</td> </tr>\r
+ <tr><td>Tuvalu</td><td>5</td><td>10</td><td>10</td><td>11</td><td>11</td> </tr>\r
+ <tr><td>Uganda</td><td>5158</td><td>32710</td><td>39710</td><td>53406</td><td>91271</td> </tr>\r
+ <tr><td>Ukraine</td><td>37298</td><td>45708</td><td>44165</td><td>41617</td><td>35026</td> </tr>\r
+ <tr><td>United Arab Emirates</td><td>70</td><td>4599</td><td>5193</td><td>6109</td><td>8253</td> </tr>\r
+ <tr><td>United Kingdom</td><td>50616</td><td>61565</td><td>63528</td><td>66601</td><td>72365</td> </tr>\r
+ <tr><td>United Republic of Tanzania</td><td>7650</td><td>43739</td><td>52109</td><td>67394</td><td>109450</td> </tr>\r
+ <tr><td>United States of America</td><td>157813</td><td>314659</td><td>332334</td><td>358735</td><td>403932</td> </tr>\r
+ <tr><td>United States Virgin Islands</td><td>27</td><td>110</td><td>108</td><td>103</td><td>75</td> </tr>\r
+ <tr><td>Uruguay</td><td>2239</td><td>3361</td><td>3430</td><td>3546</td><td>3637</td> </tr>\r
+ <tr><td>Uzbekistan</td><td>6314</td><td>27488</td><td>29456</td><td>32715</td><td>36439</td> </tr>\r
+ <tr><td>Vanuatu</td><td>48</td><td>240</td><td>276</td><td>338</td><td>482</td> </tr>\r
+ <tr><td>Venezuela (Bolivarian Republic of)</td>  <td>5094</td><td>28583</td><td>31292</td><td>35370</td><td>42042</td> </tr>\r
+ <tr><td>Viet Nam</td><td>27367</td><td>88069</td><td>93647</td><td>102054</td><td>111666</td> </tr>\r
+ <tr><td>Wallis and Futuna Islands</td><td>7</td><td>15</td><td>16</td><td>17</td><td>17</td> </tr>\r
+ <tr><td>Western Sahara</td><td>14</td><td>513</td><td>625</td><td>775</td><td>938</td> </tr>\r
+ <tr><td>Yemen</td><td>4316</td><td>23580</td><td>27819</td><td>35509</td><td>53689</td> </tr>\r
+ <tr><td>Zambia</td><td>2340</td><td>12935</td><td>14980</td><td>18890</td><td>28957</td> </tr>\r
+ <tr><td>Zimbabwe</td><td>2747</td><td>12523</td><td>14029</td><td>16780</td><td>22178</td> </tr>\r
+</table>\r
 \r
 </body>\r
 </html>\r
index 08097e1..d89ae67 100644 (file)
@@ -24,11 +24,6 @@ End Sub
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<style type="text/css">\r
-div.ricoLG_cell {\r
-  white-space:nowrap;\r
-}\r
-</style>\r
 </head>\r
 \r
 \r
@@ -46,24 +41,26 @@ Updates are disabled on the database, so you will get an error message if you tr
 <p><strong>Orders Table</strong></p>\r
 \r
 \r
-<Rico:LiveGridEdit runat='server' id='ex8' TableName='orders' DefaultSort='OrderID' FilterLocation='-1'>\r
+<Rico:LiveGridEdit runat='server' id='ex8' DefaultSort='OrderID' FilterLocation='-1'>\r
   <Rico:CalendarControl runat='server' id='Cal' icon='rico-icon rico-calarrow' />\r
   <Rico:TreeControl runat='server' id='CustomerTree' icon='rico-icon rico-dotbutton' source='CustTree.aspx' />\r
+\r
+  <Rico:Table runat='server' TblName='orders' />\r
   <Rico:ColumnGroup runat='server' heading='Basic Info' />\r
-  <Rico:Column runat='server' heading='Order#'        width='60'  ColName='OrderID'      EntryType='B' ColData='<auto>' ConfirmDeleteColumn='true' />\r
-  <Rico:Column runat='server' heading='Customer'      width='160' ColName='CustomerID'   EntryType='CL' InsertOnly='true' SelectCtl='CustomerTree' SelectSql="select CustomerID,CompanyName from customers order by CompanyName" filterUI='t' />\r
-  <Rico:Column runat='server' heading='Sales Person'  width='140' ColName='EmployeeID'   EntryType='SL' filterUI='m' id='EmployeeID' />\r
-  <Rico:Column runat='server' heading='Order Date'    width='100' ColName='OrderDate'    EntryType='D' ColData='Today' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' heading='Required Date' width='100' ColName='RequiredDate' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' heading='Net Sale'      width='80'  format='DOLLAR'        Formula='select sum(UnitPrice*Quantity*(1.0-Discount)) from order_details d where d.OrderID=t.OrderID' />\r
+  <Rico:EditCol runat='server' heading='Order#'        width='60'  ColName='OrderID'      EntryType='B' ColData='<auto>' ConfirmDeleteColumn='true' />\r
+  <Rico:EditCol runat='server' heading='Customer'      width='160' ColName='CustomerID'   EntryType='CL' InsertOnly='true' SelectCtl='CustomerTree' SelectSql="select CustomerID,CompanyName from customers order by CompanyName" filterUI='t' />\r
+  <Rico:EditCol runat='server' heading='Sales Person'  width='140' ColName='EmployeeID'   EntryType='SL' filterUI='m' id='EmployeeID' />\r
+  <Rico:EditCol runat='server' heading='Order Date'    width='100' ColName='OrderDate'    EntryType='D' ColData='Today' SelectCtl='Cal' />\r
+  <Rico:EditCol runat='server' heading='Required Date' width='100' ColName='RequiredDate' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
+  <Rico:FormulaCol runat='server' heading='Net Sale'   width='80'  DataType='DOLLAR'      Formula='select sum(UnitPrice*Quantity*(1.0-Discount)) from order_details d where d.OrderID=t.OrderID' />\r
 \r
   <Rico:ColumnGroup runat='server' heading='Ship To' />\r
-  <Rico:Column runat='server' heading='Name'        width='150' ColName='ShipName'       EntryType='B' />\r
-  <Rico:Column runat='server' heading='Address'     width='150' ColName='ShipAddress'    EntryType='B' />\r
-  <Rico:Column runat='server' heading='City'        width='120' ColName='ShipCity'       EntryType='B' filterUI='m' />\r
-  <Rico:Column runat='server' heading='Region'      width='80'  ColName='ShipRegion'     EntryType='T' />\r
-  <Rico:Column runat='server' heading='Postal Code' width='80'  ColName='ShipPostalCode' EntryType='T' />\r
-  <Rico:Column runat='server' heading='Country'     width='90'  ColName='ShipCountry'    EntryType='N' filterUI='s' control="new Rico.TableColumn.link('http://en.wikipedia.org/wiki/{11}','_blank')" />\r
+  <Rico:EditCol runat='server' heading='Name'        width='150' ColName='ShipName'       EntryType='B' />\r
+  <Rico:EditCol runat='server' heading='Address'     width='150' ColName='ShipAddress'    EntryType='B' />\r
+  <Rico:EditCol runat='server' heading='City'        width='120' ColName='ShipCity'       EntryType='B' filterUI='m' />\r
+  <Rico:EditCol runat='server' heading='Region'      width='80'  ColName='ShipRegion'     EntryType='T' />\r
+  <Rico:EditCol runat='server' heading='Postal Code' width='80'  ColName='ShipPostalCode' EntryType='T' />\r
+  <Rico:EditCol runat='server' heading='Country'     width='90'  ColName='ShipCountry'    EntryType='N' filterUI='s' control="new Rico.TableColumn.link('http://en.wikipedia.org/wiki/{11}','_blank')" />\r
 </Rico:LiveGridEdit>\r
 \r
 </body>\r
index 7845f92..3ccf52b 100644 (file)
@@ -21,11 +21,6 @@ End Sub
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<style type="text/css">\r
-div.ricoLG_cell {\r
-  white-space:nowrap;\r
-}\r
-</style>\r
 </head>\r
 <body>\r
 \r
@@ -44,16 +39,15 @@ Click on a cell to see available actions.
 (displays directly in Chrome and Safari, requires JSONview or similar extension in Firefox).\r
 </div>\r
 \r
-<Rico:LiveGrid runat='server' id='ex2j' fmt="json" TableName='orders' DefaultSort='OrderID' menuEvent='click' frozenColumns='1' highlightElem='cursorRow'>\r
-<GridColumns>\r
-  <Rico:Column runat='server' ColName='OrderID' heading='Order#' width='60' />\r
-  <Rico:Column runat='server' ColName='CustomerID' heading='Cust#' width='60' />\r
-  <Rico:Column runat='server' ColName='ShipName' heading='Ship Name' width='150' />\r
-  <Rico:Column runat='server' ColName='ShipCity' heading='Ship City' width='120' />\r
-  <Rico:Column runat='server' ColName='ShipCountry' heading='Ship Country' width='90' />\r
-  <Rico:Column runat='server' ColName='OrderDate' heading='Order Date' datatype='date' width='100' />\r
-  <Rico:Column runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' />\r
-</GridColumns>\r
+<Rico:LiveGrid runat='server' id='ex2j' fmt="json" DefaultSort='OrderID' menuEvent='click' frozenColumns='1' highlightElem='cursorRow'>\r
+  <Rico:Table runat='server' TblName='orders' />\r
+  <Rico:TableCol runat='server' ColName='OrderID' heading='Order#' width='60' />\r
+  <Rico:TableCol runat='server' ColName='CustomerID' heading='Cust#' width='60' />\r
+  <Rico:TableCol runat='server' ColName='ShipName' heading='Ship Name' width='150' />\r
+  <Rico:TableCol runat='server' ColName='ShipCity' heading='Ship City' width='120' />\r
+  <Rico:TableCol runat='server' ColName='ShipCountry' heading='Ship Country' width='90' />\r
+  <Rico:TableCol runat='server' ColName='OrderDate' heading='Order Date' datatype='date' width='100' />\r
+  <Rico:TableCol runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' />\r
 </Rico:LiveGrid>\r
 \r
 </body>\r
index c24d389..36e4444 100644 (file)
@@ -10,7 +10,7 @@ Sub Page_Load(Sender As object, e As EventArgs)
   dim arEmpSql as string() = {"LastName","', '","FirstName"}\r
   dim oSqlCompat=new sqlCompatibilty(app.dbDialect)\r
   EmployeeID.SelectSql="select EmployeeID," & oSqlCompat.Concat(arEmpSql,false) & " from employees order by LastName,FirstName" \r
-  app.OpenGridForm(ex8n)\r
+  app.OpenGridForm(nosession)\r
 End Sub\r
 \r
 </script>\r
@@ -38,30 +38,34 @@ Base Library: <script type='text/javascript'>document.write(Rico.Lib+' '+Rico.Li
 <hr>The data on this grid can be edited using pop-up forms. \r
 Just click on a grid cell and then select Edit, Delete, or Add from the pop-up menu. \r
 Updates are disabled on the database, so you will get an error message if you try to save.\r
-<p>Rather than requesting data from RicoQuery, this page is able to process the AJAX\r
-data requests itself. No session variables are used.\r
+<p>Each request for data is processed separately. No session variables are used.\r
+The disadvantage is that the query must be completely rebuilt every time - and just building\r
+the query requires an additional query to the database to get table metadata (primary keys, etc).\r
+This overhead is not required when session variables are used.\r
 </div>\r
 <p><strong>Orders Table (without sessions)</strong></p>\r
 \r
 \r
-<Rico:LiveGridEdit runat='server' id='ex8n' TableName='orders' DefaultSort='OrderID' FilterLocation='-1' sessions='false'>\r
+<Rico:LiveGridEdit runat='server' id='nosession' DefaultSort='OrderID' FilterLocation='-1' sessions='false'>\r
   <Rico:CalendarControl runat='server' id='Cal' icon='rico-icon rico-calarrow' />\r
   <Rico:TreeControl runat='server' id='CustomerTree' icon='rico-icon rico-dotbutton' source='CustTree.aspx' />\r
+\r
+  <Rico:Table runat='server' TblName='orders' />\r
   <Rico:ColumnGroup runat='server' heading='Basic Info' />\r
-  <Rico:Column runat='server' heading='Order#'        width='60'  ColName='OrderID'      EntryType='B' ColData='<auto>' ConfirmDeleteColumn='true' />\r
-  <Rico:Column runat='server' heading='Customer'      width='160' ColName='CustomerID'   EntryType='CL' InsertOnly='true' SelectCtl='CustomerTree' SelectSql="select CustomerID,CompanyName from customers order by CompanyName" filterUI='t' />\r
-  <Rico:Column runat='server' heading='Sales Person'  width='140' ColName='EmployeeID'   EntryType='SL' filterUI='s' id='EmployeeID' />\r
-  <Rico:Column runat='server' heading='Order Date'    width='100' ColName='OrderDate'    EntryType='D' ColData='Today' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' heading='Required Date' width='100' ColName='RequiredDate' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
-  <Rico:Column runat='server' heading='Net Sale'      width='80'  format='DOLLAR'        Formula='select sum(UnitPrice*Quantity*(1.0-Discount)) from order_details d where d.OrderID=t.OrderID' />\r
+  <Rico:EditCol runat='server' heading='Order#'        width='60'  ColName='OrderID'      EntryType='B' ColData='<auto>' ConfirmDeleteColumn='true' />\r
+  <Rico:EditCol runat='server' heading='Customer'      width='160' ColName='CustomerID'   EntryType='CL' InsertOnly='true' SelectCtl='CustomerTree' SelectSql="select CustomerID,CompanyName from customers order by CompanyName" filterUI='t' />\r
+  <Rico:EditCol runat='server' heading='Sales Person'  width='140' ColName='EmployeeID'   EntryType='SL' filterUI='m' id='EmployeeID' />\r
+  <Rico:EditCol runat='server' heading='Order Date'    width='100' ColName='OrderDate'    EntryType='D' ColData='Today' SelectCtl='Cal' />\r
+  <Rico:EditCol runat='server' heading='Required Date' width='100' ColName='RequiredDate' EntryType='D' ColData='Today' SelectCtl='Cal' />\r
+  <Rico:FormulaCol runat='server' heading='Net Sale'   width='80'  DataType='DOLLAR'      Formula='select sum(UnitPrice*Quantity*(1.0-Discount)) from order_details d where d.OrderID=t.OrderID' />\r
 \r
   <Rico:ColumnGroup runat='server' heading='Ship To' />\r
-  <Rico:Column runat='server' heading='Name'        width='150' ColName='ShipName'       EntryType='B' />\r
-  <Rico:Column runat='server' heading='Address'     width='150' ColName='ShipAddress'    EntryType='B' />\r
-  <Rico:Column runat='server' heading='City'        width='80'  ColName='ShipCity'       EntryType='B' filterUI='s' />\r
-  <Rico:Column runat='server' heading='Region'      width='80'  ColName='ShipRegion'     EntryType='T' />\r
-  <Rico:Column runat='server' heading='Postal Code' width='80'  ColName='ShipPostalCode' EntryType='T' />\r
-  <Rico:Column runat='server' heading='Country'     width='90'  ColName='ShipCountry'    EntryType='N' filterUI='s' control="new Rico.TableColumn.link('http://en.wikipedia.org/wiki/{11}','_blank')" />\r
+  <Rico:EditCol runat='server' heading='Name'        width='150' ColName='ShipName'       EntryType='B' />\r
+  <Rico:EditCol runat='server' heading='Address'     width='150' ColName='ShipAddress'    EntryType='B' />\r
+  <Rico:EditCol runat='server' heading='City'        width='120' ColName='ShipCity'       EntryType='B' filterUI='m' />\r
+  <Rico:EditCol runat='server' heading='Region'      width='80'  ColName='ShipRegion'     EntryType='T' />\r
+  <Rico:EditCol runat='server' heading='Postal Code' width='80'  ColName='ShipPostalCode' EntryType='T' />\r
+  <Rico:EditCol runat='server' heading='Country'     width='90'  ColName='ShipCountry'    EntryType='N' filterUI='s' control="new Rico.TableColumn.link('http://en.wikipedia.org/wiki/{11}','_blank')" />\r
 </Rico:LiveGridEdit>\r
 \r
 </body>\r
index 7a18e33..dc01023 100644 (file)
@@ -20,11 +20,6 @@ End Sub
 <Rico:LoadClient checkQueryString='true' runat='server' />\r
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 \r
-<style type="text/css">\r
-div.ricoLG_cell {\r
-  white-space:nowrap;\r
-}\r
-</style>\r
 </head>\r
 <body>\r
 \r
@@ -42,14 +37,15 @@ Click on a cell to see available actions.
 <a href='<%=Page.Request.ServerVariables("SCRIPT_NAME")%>?_action_ex2x=query&offset=0&page_size=10'>View the AJAX response (XML)</a>.\r
 </div>\r
 \r
-<Rico:LiveGrid runat='server' id='ex2x' TableName='orders' DefaultSort='OrderID' menuEvent='click' frozenColumns='1' highlightElem='cursorRow'>\r
-  <Rico:Column runat='server' ColName='OrderID' heading='Order#' width='60' />\r
-  <Rico:Column runat='server' ColName='CustomerID' heading='Cust#' width='60' />\r
-  <Rico:Column runat='server' ColName='ShipName' heading='Ship Name' width='150' />\r
-  <Rico:Column runat='server' ColName='ShipCity' heading='Ship City' width='120' />\r
-  <Rico:Column runat='server' ColName='ShipCountry' heading='Ship Country' width='90' />\r
-  <Rico:Column runat='server' ColName='OrderDate' heading='Order Date' datatype='date' width='100' />\r
-  <Rico:Column runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' />\r
+<Rico:LiveGrid runat='server' id='ex2x' DefaultSort='OrderID' menuEvent='click' frozenColumns='1' highlightElem='cursorRow'>\r
+  <Rico:Table runat='server' TblName='orders' />\r
+  <Rico:TableCol runat='server' ColName='OrderID' heading='Order#' width='60' />\r
+  <Rico:TableCol runat='server' ColName='CustomerID' heading='Cust#' width='60' />\r
+  <Rico:TableCol runat='server' ColName='ShipName' heading='Ship Name' width='150' />\r
+  <Rico:TableCol runat='server' ColName='ShipCity' heading='Ship City' width='120' />\r
+  <Rico:TableCol runat='server' ColName='ShipCountry' heading='Ship Country' width='90' />\r
+  <Rico:TableCol runat='server' ColName='OrderDate' heading='Order Date' datatype='date' width='100' />\r
+  <Rico:TableCol runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' />\r
 </Rico:LiveGrid>\r
 \r
 </body>\r
index 75a4a58..2f10753 100644 (file)
@@ -7,7 +7,7 @@
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\r
 <base target="content">\r
 \r
-<Rico:LoadClient noTheme='' runat='server' />\r
+<Rico:LoadClient runat='server' />\r
 \r
 <script src="../menu.js" type="text/javascript"></script>\r
 <link href="../menu.css" type="text/css" rel="stylesheet">\r
@@ -50,6 +50,8 @@ ul li {
 <li><a id="demo_ex1.aspx">LiveGrid sourced from HTML table</a>\r
 <li><a id="demo_ex2xml.aspx">LiveGrid sourced from SQL database (xml)</a>\r
 <li><a id="demo_ex2json.aspx">LiveGrid sourced from SQL database (json)</a>\r
+<li><a id="demo_ex2style.aspx">LiveGrid with custom column styles</a>\r
+<li><a id="demo_ex2notheme.aspx">LiveGrid with completely custom style</a>\r
 <li><a id="demo_3grids.aspx">3 grids with drill-down</a>\r
 <li><a id="demo_ShipperEdit.aspx">Editable LiveGrid (Shippers)</a>\r
 <li><a id="demo_employees.aspx">Editable LiveGrid (Employees)</a>\r
index 422bb20..1ac0149 100644 (file)
 <script type='text/javascript'>\r
 var img_popup;\r
 \r
-function photogrid_InitComplete() {\r
+function photos_InitComplete() {\r
   // do something special when the mouse hovers over an image\r
-  var c0=photogrid['grid'].columns[0];\r
+  var c0=photos.grid.columns[0];\r
   for (var i=0; i<c0._img.length; i++) {\r
     Rico.eventBind(c0._img[i],'mouseover',Rico.eventHandle(window,'img_mouseover'));\r
     Rico.eventBind(c0._img[i],'mouseout',Rico.eventHandle(window,'img_mouseout'));\r
   }\r
-  img_popup=document.getElementById('img_popup');\r
+  img_popup=Rico.$('img_popup');\r
 }\r
 \r
 function img_mouseover(e) {\r
@@ -46,10 +46,10 @@ function img_mouseout(e) {
 }\r
 \r
 function UpdateGrid() {\r
-  var tags=$('tags').value;\r
+  var tags=Rico.$('tags').value;\r
   if (tags) {\r
-    photogrid['buffer'].options.requestParameters=['tags='+tags];\r
-    photogrid['grid'].filterHandler();\r
+    photos['buffer'].options.requestParameters=['tags='+tags];\r
+    photos['grid'].filterHandler();\r
   } else {\r
     alert('Please enter one or more keywords separated by commas');\r
   }\r
@@ -57,7 +57,6 @@ function UpdateGrid() {
 </script>\r
 \r
 <style type="text/css">\r
-.ricoLG_bottom div.ricoLG_cell { height:80px; }  /* thumbnails are 75x75 pixels */\r
 #explanation * { font-size: 8pt; }\r
 </style>\r
 \r
@@ -66,20 +65,19 @@ function UpdateGrid() {
 <body>\r
 \r
 <div id='explanation'><form onsubmit='UpdateGrid(); return false;'>\r
-<p>Find 100 <a href="http://www.flickr.com">Flickr</a> photos tagged with the keywords you type below (separate words with commas):\r
+Base Library: <script type='text/javascript'>document.write(Rico.Lib+' '+Rico.LibVersion);</script>\r
+<hr><p>Find 100 <a href="http://www.flickr.com">Flickr</a> photos tagged with the keywords you type below (separate words with commas):\r
 <p><input type='text' id='tags'>\r
 <input type='submit' value='Get Photos'>\r
 <p>Then try moving your cursor over each photo...\r
 </form></div>\r
 \r
-<Rico:LiveGrid runat='server' id='photogrid' prefetchBuffer='false' dataProvider='flickrPhotos.aspx' headingSort='hover'>\r
-<GridColumns>\r
+<Rico:LiveGrid runat='server' id='photos' prefetchBuffer='false' DataRowHt='80px' DataWrapText='true' dataProvider="'flickrPhotos.aspx'">\r
   <Rico:Column runat='server' heading='Photo' width='90' control='new Rico.TableColumn.image()' />\r
   <Rico:Column runat='server' heading='Title' width='100' />\r
   <Rico:Column runat='server' heading='Owner' width='100' />\r
   <Rico:Column runat='server' heading='Date Taken' width='100' DataType='datetime' />\r
   <Rico:Column runat='server' heading='Tags' width='200' />\r
-</GridColumns>\r
 </Rico:LiveGrid>\r
 \r
 <img id='img_popup' style='display:none;position:absolute;'>\r
index a00cafa..a9ddee3 100644 (file)
@@ -74,10 +74,14 @@ sub AddRow(ProductName as String, Gross as Double, Discounts as Double)
   ex1.AddDataRow()\r
   ex1.AddCell(ProductName)\r
   ex1.AddCell("$" & FormatNumber(Gross,0,-1,0,-1))\r
+  ex1.SetCellAttr("class","number")\r
   ex1.AddCell("$" & FormatNumber(Discounts,0,-1,0,-1))\r
+  ex1.SetCellAttr("class","number")\r
   ex1.AddCell("$" & FormatNumber(Gross-Discounts,0,-1,0,-1))\r
+  ex1.SetCellAttr("class","number")\r
   pct=Discounts/Gross\r
   ex1.AddCell(pct.toString("0%"))\r
+  ex1.SetCellAttr("class","number")\r
 end sub\r
 \r
 Protected Overrides Sub Render(writer as HTMLTextWriter)\r
@@ -132,6 +136,9 @@ function ExportGridServer(ExportType) {
 div.ricoLG_cell {\r
   white-space:nowrap;\r
 }\r
+.number {\r
+  text-align: right;\r
+}\r
 </style>\r
 \r
 </head>\r
@@ -161,13 +168,11 @@ can be formatted individually.
 </div>\r
 \r
 <Rico:SimpleGrid runat='server' id='ex1' FrozenCols='1'>\r
-<GridColumns>\r
   <Rico:Column runat='server' width='200' />\r
-  <Rico:Column runat='server' spec='specQty' />\r
-  <Rico:Column runat='server' spec='specQty' />\r
-  <Rico:Column runat='server' spec='specQty' />\r
-  <Rico:Column runat='server' spec='specQty' />\r
-</GridColumns>\r
+  <Rico:Column runat='server' />\r
+  <Rico:Column runat='server' />\r
+  <Rico:Column runat='server' />\r
+  <Rico:Column runat='server' />\r
 </Rico:SimpleGrid>\r
 \r
 </body>\r
index b142113..c4071e1 100644 (file)
@@ -31,7 +31,7 @@ Rico.onLoad( function() {
     Rico.eventBind(imgctl._img[i],'mouseover',Rico.eventHandle(window,'img_mouseover'));\r
     Rico.eventBind(imgctl._img[i],'mouseout',Rico.eventHandle(window,'img_mouseout'));\r
   }\r
-  img_popup=document.getElementById('img_popup');\r
+  img_popup=Rico.$('img_popup');\r
 });\r
 \r
 function img_mouseover(e) {\r
@@ -58,7 +58,7 @@ function img_mouseout(e) {
 }\r
 \r
 function UpdateGrid() {\r
-  var tags=document.getElementById('tags').value;\r
+  var tags=Rico.$('tags').value;\r
   if (tags) {\r
     photoGrid.resetContents(false);\r
     photoBuffer.fetchData=true;  // force another XML fetch\r
index 2ec1975..c640932 100644 (file)
@@ -42,7 +42,6 @@ Rico.GridCommon = {
       FilterAllToken   : '___ALL___', // select box value to use to indicate ALL
       columnSpecs      : []
     };
-    this.colWidths = [];
     this.hdrCells=[];
     this.headerColCnt=0;
     this.headerRowIdx=0;       // row in header which gets resizers (no colspan's in this row)
@@ -715,12 +714,7 @@ Rico.ColumnConst = {
   SORT_ASC:  "ASC",
   SORT_DESC: "DESC",
 
-  MINWIDTH: 10,
-  DOLLAR:  {type:'number', prefix:'$', decPlaces:2, ClassName:'alignright'},
-  EURO:    {type:'number', prefix:'&euro;', decPlaces:2, ClassName:'alignright'},
-  PERCENT: {type:'number', suffix:'%', decPlaces:2, multiplier:100, ClassName:'alignright'},
-  QTY:     {type:'number', decPlaces:0, ClassName:'alignright'},
-  DEFAULT: {type:"showTags"}
+  MINWIDTH: 10
 }
 
 
@@ -758,18 +752,9 @@ Rico.TableColumnBase.prototype = {
     this.mouseOutHandler = Rico.eventHandle(this,'handleMouseOut');
 
     this.fieldName = 'col'+this.index;
+    this.format={type:"text"};
     var spec = liveGrid.options.columnSpecs[colIdx];
-    this.format=Rico.extend( {}, Rico.ColumnConst.DEFAULT);
-    switch (typeof spec) {
-      case 'object':
-        if (typeof spec.format=='string') Rico.extend(this.format, Rico.ColumnConst[spec.format.toUpperCase()]);
-        Rico.extend(this.format, spec);
-        break;
-      case 'string':
-        if (spec.slice(0,4)=='spec') spec=spec.slice(4).toUpperCase();  // for backwards compatibility
-        if (typeof Rico.ColumnConst[spec]=='object') Rico.extend(this.format, Rico.ColumnConst[spec]);
-        break;
-    }
+    if (typeof spec == 'object') Rico.extend(this.format, spec);
     Rico.addClass(this.dataColDiv, this.colClassName());
     this.visible=true;
     if (typeof this.format.visible=='boolean') this.visible=this.format.visible;
@@ -824,15 +809,7 @@ Rico.TableColumnBase.prototype = {
   clearCell: function(rowIndex) {
     var gridCell=this.cell(rowIndex);
     this._clear(gridCell,rowIndex);
-    if (!this.liveGrid.buffer) return;
-    var acceptAttr=this.liveGrid.buffer.options.acceptAttr;
-    for (var k=0; k<acceptAttr.length; k++) {
-      switch (acceptAttr[k]) {
-        case 'style': gridCell.style.cssText=''; break;
-        case 'class': gridCell.className=''; break;
-        default:      gridCell['_'+acceptAttr[k]]=''; break;
-      }
-    }
+    if (this.liveGrid.buffer && this.liveGrid.buffer.options.acceptStyle) gridCell.style.cssText='';
   },
 
   dataTable: function() {
index 6a5ef63..6c89dc1 100644 (file)
@@ -43,11 +43,12 @@ Rico.Buffer.Base.prototype = {
       fixedHdrRows     : 0,
       canFilter        : true,  // does buffer object support filtering?
       isEncoded        : true,  // is the data received via ajax html encoded?
-      acceptAttr       : []     // attributes that can be copied from original/ajax data (e.g. className, style, id)
+      acceptStyle      : false  // copy style from original/ajax data?
     };
     Rico.extend(this.options, options || {});
     if (dataTable) {
       this.loadRowsFromTable(dataTable,this.options.fixedHdrRows);
+      dataTable.parentNode.removeChild(dataTable);  // delete the data once it has been loaded
     } else {
       this.clear();
     }
@@ -77,10 +78,10 @@ Rico.Buffer.Base.prototype = {
   },
 
   loadRowsFromTable: function(tableElement,firstRow) {
-    var newRows = new Array();
+    var newRows = [];
     var trs = tableElement.getElementsByTagName("tr");
     for ( var i=firstRow || 0; i < trs.length; i++ ) {
-      var row = new Array();
+      var row = [];
       var cells = trs[i].getElementsByTagName("td");
       for ( var j=0; j < cells.length ; j++ )
         row[j]=cells[j].innerHTML;
@@ -106,10 +107,10 @@ Rico.Buffer.Base.prototype = {
 
   dom2jstable: function(rowsElement) {
     Rico.log('dom2jstable: encoded='+this.options.isEncoded);
-    var newRows = new Array();
+    var newRows = [];
     var trs = rowsElement.getElementsByTagName("tr");
     for ( var i=0; i < trs.length; i++ ) {
-      var row = new Array();
+      var row = [];
       var cells = trs[i].getElementsByTagName("td");
       for ( var j=0; j < cells.length ; j++ )
         row[j]=Rico.getContentAsString(cells[j],this.options.isEncoded);
@@ -118,26 +119,6 @@ Rico.Buffer.Base.prototype = {
     return newRows;
   },
 
-  dom2jstableAttr: function(rowsElement,firstRow) {
-    var acceptAttr=this.options.acceptAttr;
-    Rico.log("dom2jstableAttr start, # attr="+acceptAttr.length);
-    var newRows = new Array();
-    var trs = rowsElement.getElementsByTagName("tr");
-    for ( var i=firstRow || 0; i < trs.length; i++ ) {
-      var row = new Array();
-      var cells = trs[i].getElementsByTagName("td");
-      for ( var j=0; j < cells.length ; j++ ) {
-        row[j]={};
-        for (var k=0; k<acceptAttr.length; k++)
-          row[j]['_'+acceptAttr[k]]=cells[j].getAttribute(acceptAttr[k]);
-        if (Rico.isIE) row[j]._class=cells[j].getAttribute('className');
-      }
-      newRows.push( row );
-    }
-    Rico.log("dom2jstableAttr end");
-    return newRows;
-  },
-
   _blankRow: function() {
     var newRow=[];
     for (var i=0; i<this.liveGrid.columns.length; i++) {
@@ -291,9 +272,9 @@ Rico.Buffer.Base.prototype = {
     return this.isVisible(bufrow) && col < this.rows[bufrow].length ? this.rows[bufrow][col] : null;
   },
 
-  getWindowAttr: function(windowRow,col) {
+  getWindowStyle: function(windowRow,col) {
     var bufrow=this.bufferRow(windowRow);
-    return this.attr && this.isVisible(bufrow) && col < this.attr[bufrow].length ? this.attr[bufrow][col] : null;
+    return this.attr && this.isVisible(bufrow) && col < this.attr[bufrow].length ? this.attr[bufrow][col] : '';
   },
 
   getWindowValue: function(windowRow,col) {
@@ -326,7 +307,7 @@ Rico.Buffer.Base.prototype = {
   getRows: function(start, count) {
     var begPos = start - this.startPos;
     var endPos = Math.min(begPos + count,this.size);
-    var results = new Array();
+    var results = [];
     for ( var i=begPos; i < endPos; i++ ) {
       results.push(this.rows[i]);
     }
@@ -722,7 +703,7 @@ Rico.LiveGridMethods = {
     // create new tables
     for (i=0; i<3; i++) {
       this.tabs[i] = document.createElement("table");
-      this.tabs[i].className = 'ricoLG_table';
+      this.tabs[i].className = (i < 2) ? 'ricoLG_table' : 'ricoLG_scrollTab';
       this.tabs[i].border=0;
       this.tabs[i].cellPadding=0;
       this.tabs[i].cellSpacing=0;
@@ -731,8 +712,8 @@ Rico.LiveGridMethods = {
     // set headings
     for (i=0; i<2; i++) {
       this.thead[i]=this.tabs[i].createTHead();
-      Rico.addClass(this.tabs[i],'ricoLG_top');
-      //this.thead[i].className='ricoLG_top';
+      //Rico.addClass(this.tabs[i],'ricoLG_top');
+      this.thead[i].className='ricoLG_top';
       if (Rico.theme.gridheader) Rico.addClass(this.thead[i],Rico.theme.gridheader);
     }
     // set bodies
@@ -808,11 +789,11 @@ Rico.LiveGridMethods = {
       switch (fmt.filterUI.charAt(0)) {
         case 't':
           // text field
-          field=Rico.createFormField(divs[1],'input','text',name,name);
+          field=Rico.createFormField(divs[1],'input',Rico.inputtypes.search ? 'search' : 'text',name,name);
           var size=fmt.filterUI.match(/\d+/);
           field.maxLength=fmt.Length || 50;\r
           field.size=size ? parseInt(size,10) : 10;
-          divs[1].appendChild(Rico.clearButton(Rico.eventHandle(col,'filterClear')));
+          if (field.type != 'search') divs[1].appendChild(Rico.clearButton(Rico.eventHandle(col,'filterClear')));
           if (col.filterType==Rico.ColumnConst.USERFILTER && col.filterOp=='LIKE') {
             var v=col.filterValues[0];
             if (v.charAt(0)=='*') v=v.substr(1);
@@ -1002,7 +983,7 @@ Rico.LiveGridMethods = {
       for (r=0; r<hdrSrc.length; r++) {
         cells=hdrSrc[r].cells;
         for (c=0,h=0; cells.length > 0; c++) {
-          if (cells[0].className=='ricoFrozen') {
+          if (Rico.hasClass(cells[0],'ricoFrozen')) {
             if (r==this.headerRowIdx) this.options.frozenColumns=c+1;
           } else {
             h=1;
@@ -1994,9 +1975,9 @@ initialize: function(liveGrid,colIdx,hdrInfo,tabIdx) {
   Rico.extend(this, new Rico.TableColumnBase());
   this.baseInit(liveGrid,colIdx,hdrInfo,tabIdx);
   this.buffer=liveGrid.buffer;
-  if (typeof(this.format.type)!='string' || this.format.EntryType=='tinyMCE') this.format.type='raw';
+  if (typeof(this.format.type)!='string' || this.format.EntryType=='tinyMCE') this.format.type='html';
   if (typeof this.isNullable!='boolean') this.isNullable = /number|date/.test(this.format.type);
-  this.isText = /raw|text|showTags/.test(this.format.type);
+  this.isText = /html|text/.test(this.format.type);
   Rico.log(" sortable="+this.sortable+" filterable="+this.filterable+" hideable="+this.hideable+" isNullable="+this.isNullable+' isText='+this.isText);
   this.fixHeaders(this.liveGrid.tableId, this.options.hdrIconsFirst);
   if (this['format_'+this.format.type]) {
@@ -2291,13 +2272,6 @@ format_text: function(v) {
   if (typeof v!='string')
     return '&nbsp;';
   else
-    return Rico.stripTags(v);
-},
-
-format_showTags: function(v) {
-  if (typeof v!='string')
-    return '&nbsp;';
-  else
     return v.replace(/&/g, '&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
 },
 
@@ -2319,7 +2293,7 @@ format_datetime: function(v) {
 },
 
 // converts GMT/UTC to local time
-format_UTCasLocalTime: function(v) {
+format_utcaslocaltime: function(v) {
   if (typeof v=='undefined' || v=='' || v==null)
     return '&nbsp;';
   else {
@@ -2382,8 +2356,8 @@ getValue: function(windowRow) {
   return this.buffer.getWindowCell(windowRow,this.index);
 },
 
-getBufferAttr: function(windowRow) {
-  return this.buffer.getWindowAttr(windowRow,this.index);
+getBufferStyle: function(windowRow) {
+  return this.buffer.getWindowStyle(windowRow,this.index);
 },
 
 setValue: function(windowRow,newval) {
@@ -2414,17 +2388,8 @@ displayValue: function(windowRow) {
   }
   var gridCell=this.cell(windowRow);
   this._display(bufval,gridCell,windowRow);
-  var acceptAttr=this.buffer.options.acceptAttr;
-  if (acceptAttr.length==0) return;
-  var bufAttr=this.getBufferAttr(windowRow);
-  if (bufAttr==null) return;
-  for (var k=0; k<acceptAttr.length; k++) {
-    bufAttr=bufAttr['_'+acceptAttr[k]] || '';
-    switch (acceptAttr[k]) {
-      case 'style': gridCell.style.cssText=bufAttr; break;
-      case 'class': gridCell.className=bufAttr; break;
-      default:      gridCell['_'+acceptAttr[k]]=bufAttr; break;
-    }
+  if (this.buffer.options.acceptStyle) {
+    gridCell.style.cssText=this.getBufferStyle(windowRow);
   }
 }
 
index 01b6921..a1a3ccd 100644 (file)
@@ -64,7 +64,7 @@ Rico.Buffer.AjaxXMLMethods = {
         this.ajaxOptions.onComplete = function(xhr) { self.ajaxUpdate(offset,xhr); };
         new Rico.ajaxRequest(this.dataSource, this.ajaxOptions);
       } else {
-        this.ajaxOptions.onComplete = function(newRows, newAttr, totalRows, errMsg) { self.jsUpdate(offset, newRows, newAttr, totalRows, errMsg); };
+        this.ajaxOptions.onComplete = function(newRows, newStyle, totalRows, errMsg) { self.jsUpdate(offset, newRows, newStyle, totalRows, errMsg); };
         this.dataSource(this.ajaxOptions);
       }
     } else {
@@ -116,7 +116,7 @@ Rico.Buffer.AjaxXMLMethods = {
   },
 
   // used by both XML and SQL buffers
-  jsUpdate: function(startPos, newRows, newAttr, totalRows, errMsg) {
+  jsUpdate: function(startPos, newRows, newStyle, totalRows, errMsg) {
     this.clearTimer();
     this.processingRequest=false;
     Rico.log("jsUpdate: "+arguments.length);
@@ -132,7 +132,7 @@ Rico.Buffer.AjaxXMLMethods = {
       this.foundRowCount = true;
       Rico.log("jsUpdate: found RowCount="+this.rowcntContent);
     }
-    this.updateBuffer(startPos, newRows, newAttr);
+    this.updateBuffer(startPos, newRows, newStyle);
     if (this.options.onAjaxUpdate)
       this.options.onAjaxUpdate();
     this.updateGrid(startPos);
@@ -192,7 +192,11 @@ Rico.Buffer.AjaxXMLMethods = {
 
     // process children of <ajax-response>
     var response = xmlDoc.getElementsByTagName("ajax-response");
-    if (response == null || response.length != 1) return false;
+    if (response == null || response.length != 1) {
+      alert("Received invalid response from server");
+      return false;
+    }
+    Rico.log("Processing ajax-response");
     this.rcvdRows = 0;
     this.rcvdRowCount = false;
     var ajaxResponse=response[0];
@@ -225,12 +229,29 @@ Rico.Buffer.AjaxXMLMethods = {
     this.rcvdOffset = rowsElement.getAttribute("offset");
     Rico.log("ajaxUpdate: rcvdOffset="+this.rcvdOffset);
     var newRows = this.dom2jstable(rowsElement);
-    var newAttr = (this.options.acceptAttr.length > 0) ? this.dom2jstableAttr(rowsElement) : false;
+    var newStyle = (this.options.acceptStyle) ? this.dom2jstableStyle(rowsElement) : false;
     this.rcvdRows = newRows.length;
-    this.updateBuffer(startPos, newRows, newAttr);
+    this.updateBuffer(startPos, newRows, newStyle);
     return true;
   },
 
+  dom2jstableStyle: function(rowsElement,firstRow) {
+    var acceptStyle=this.options.acceptStyle;
+    Rico.log("dom2jstableStyle start");
+    var newRows = [];
+    var trs = rowsElement.getElementsByTagName("tr");
+    for ( var i=firstRow || 0; i < trs.length; i++ ) {
+      var row = [];
+      var cells = trs[i].getElementsByTagName("td");
+      for ( var j=0; j < cells.length ; j++ ) {
+        row[j]=cells[j].getAttribute('style') || '';
+      }
+      newRows.push( row );
+    }
+    Rico.log("dom2jstableStyle end");
+    return newRows;
+  },
+
   processResponseJSON: function(startPos,request) {
     var json = Rico.getJSON(request);
     if (!json || json == null) {
@@ -257,14 +278,14 @@ Rico.Buffer.AjaxXMLMethods = {
     }
 
     this.rcvdRows = json.rows.length;
-    this.updateBuffer(startPos, json.rows);
+    this.updateBuffer(startPos, json.rows, json.styles);
     return true;
   },
 
   // specific to XML buffer
-  updateBuffer: function(start, newRows, newAttr) {
+  updateBuffer: function(start, newRows, newStyle) {
     this.baseRows = newRows;
-    this.attr = newAttr;
+    this.attr = newStyle;
     Rico.log("updateBuffer: # of rows="+this.rcvdRows);
     this.rcvdRowCount=true;
     this.rowcntContent=this.rcvdRows;
@@ -442,7 +463,7 @@ Rico.Buffer.AjaxSQLMethods = {
       this.ajaxOptions.onComplete = function(xhr) { self.ajaxUpdate(bufferStartPos, xhr); };
       new Rico.ajaxRequest(this.dataSource, this.ajaxOptions);
     } else {
-      this.ajaxOptions.onComplete = function(newRows, newAttr, totalRows, errMsg) { self.jsUpdate(bufferStartPos, newRows, newAttr, totalRows, errMsg); };
+      this.ajaxOptions.onComplete = function(newRows, newStyle, totalRows, errMsg) { self.jsUpdate(bufferStartPos, newRows, newStyle, totalRows, errMsg); };
       this.dataSource(this.ajaxOptions);
     }
   },
@@ -494,20 +515,20 @@ Rico.Buffer.AjaxSQLMethods = {
     return adjustedOffset;
   },
 
-  updateBuffer: function(start, newRows, newAttr) {
+  updateBuffer: function(start, newRows, newStyle) {
     Rico.log("updateBuffer: start="+start+", # of rows="+this.rcvdRows);
     if (this.rows.length == 0) { // initial load
       this.rows = newRows;
-      this.attr = newAttr;
+      this.attr = newStyle;
       this.startPos = start;
     } else if (start > this.startPos) { //appending
       if (this.startPos + this.rows.length < start) {
         this.rows =  newRows;
-        this.attr = newAttr;
+        this.attr = newStyle;
         this.startPos = start;
       } else {
         this.rows = this.rows.concat( newRows.slice(0, newRows.length));
-        if (this.attr) this.attr = this.attr.concat( newAttr.slice(0, newAttr.length));
+        if (this.attr) this.attr = this.attr.concat( newStyle.slice(0, newStyle.length));
         if (this.rows.length > this.maxBufferSize) {
           var fullSize = this.rows.length;
           this.rows = this.rows.slice(this.rows.length - this.maxBufferSize, this.rows.length);
@@ -563,7 +584,7 @@ Rico.Buffer.AjaxSQLMethods = {
     this.dataSource(this.ajaxOptions);
   },
 
-  _jsExport: function(newRows, newAttr, totalRows, errMsg) {
+  _jsExport: function(newRows, newStyle, totalRows, errMsg) {
     Rico.log("_jsExport: "+arguments.length);
     if (errMsg) {
       Rico.log("_jsExport: received error="+errMsg);
index 8bad314..e616ab5 100644 (file)
@@ -39,7 +39,6 @@ Rico.TableEdit.prototype = {
     };
     Rico.extend(this.options, liveGrid.options);
     var self=this;
-    this.hasWF2=(document.implementation && document.implementation.hasFeature && document.implementation.hasFeature('WebForms', '2.0'));
     this.menu=liveGrid.menu;
     this.menu.options.dataMenuHandler=function(grid,r,c,onBlankRow) { return self.editMenu(grid,r,c,onBlankRow); };
     this.menu.ignoreClicks();
@@ -56,7 +55,7 @@ Rico.TableEdit.prototype = {
     Rico.eventBind(document,"click", Rico.eventHandle(this,'clearSaveMsg'));
     this.extraMenuItems=[];
     this.responseHandler=function() { self.processResponse(); };
-    Rico.log("Rico.TableEdit.initialize complete, hasWF2="+this.hasWF2);
+    Rico.log("Rico.TableEdit.initialize complete");
   },
 
   createKeyArray: function() {
@@ -332,7 +331,7 @@ Rico.TableEdit.prototype = {
         if (!fmt.Help) fmt.Help=fmt.dateFmt;
         if (typeof fmt.min=='string') fmt.min=Rico.setISO8601(fmt.min) || new Date(fmt.min);
         if (typeof fmt.max=='string') fmt.max=Rico.setISO8601(fmt.max) || new Date(fmt.max);
-        if (this.hasWF2) {
+        if (Rico.inputtypes.date) {
           field=Rico.createFormField(entry,'input','date',name,name);
           field.required=fmt.required;
           if (fmt.min) field.min=Rico.toISO8601String(fmt.min,3);
@@ -347,7 +346,7 @@ Rico.TableEdit.prototype = {
       case 'I':
         if (!fmt.isNullable) fmt.required=true;
         if (!fmt.pattern) fmt.pattern='int-signed';
-        if (this.hasWF2) {
+        if (Rico.inputtypes.number) {
           field=Rico.createFormField(entry,'input','number',name,name);
           field.required=fmt.required;
           field.min=fmt.min;
index e778536..bbb6685 100644 (file)
@@ -67,47 +67,48 @@ buildGridMenu: function(r,c) {
 
   // menu items for filtering
   this.filtermenu.clearMenu();
-  if (column.canFilter() && !column.format.filterUI && (!onBlankRow || column.filterType == Rico.ColumnConst.USERFILTER)) {
+  if (column.canFilter()) {
     this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",column.displayName), this.filtermenu, false);
-    column.userFilter=column.getValue(r);
-    if (column.filterType == Rico.ColumnConst.USERFILTER) {
-      this.filtermenu.addMenuItemId("gridmenuRemoveFilter", function() { column.setUnfiltered(false); }, true);
-      if (column.filterOp=='LIKE')
-        this.filtermenu.addMenuItemId("gridmenuChgKeyword", function() { livegrid.openKeyword(c); }, true);
-      if (column.filterOp=='NE' && !onBlankRow)
-        this.filtermenu.addMenuItemId("gridmenuExcludeAlso", function() { column.addFilterNE(); }, true);
-    } else if (!onBlankRow) {
-      this.filtermenu.addMenuItemId("gridmenuInclude", function() { column.setFilterEQ(); }, true);
-      this.filtermenu.addMenuItemId("gridmenuGreaterThan", function() { column.setFilterGE(); }, column.userFilter!='');
-      this.filtermenu.addMenuItemId("gridmenuLessThan", function() { column.setFilterLE(); }, column.userFilter!='');
-      if (column.isText)
-        this.filtermenu.addMenuItemId("gridmenuContains", function() { livegrid.openKeyword(c); }, true);
-      this.filtermenu.addMenuItemId("gridmenuExclude", function() { column.setFilterNE(); }, true);
+    if (!column.format.filterUI && (!onBlankRow || column.filterType == Rico.ColumnConst.USERFILTER)) {
+      column.userFilter=column.getValue(r);
+      if (column.filterType == Rico.ColumnConst.USERFILTER) {
+        this.filtermenu.addMenuItemId("gridmenuRemoveFilter", function() { column.setUnfiltered(false); }, true);
+        if (column.filterOp=='LIKE')
+          this.filtermenu.addMenuItemId("gridmenuChgKeyword", function() { livegrid.openKeyword(c); }, true);
+        if (column.filterOp=='NE' && !onBlankRow)
+          this.filtermenu.addMenuItemId("gridmenuExcludeAlso", function() { column.addFilterNE(); }, true);
+      } else if (!onBlankRow) {
+        this.filtermenu.addMenuItemId("gridmenuInclude", function() { column.setFilterEQ(); }, true);
+        this.filtermenu.addMenuItemId("gridmenuGreaterThan", function() { column.setFilterGE(); }, column.userFilter!='');
+        this.filtermenu.addMenuItemId("gridmenuLessThan", function() { column.setFilterLE(); }, column.userFilter!='');
+        if (column.isText)
+          this.filtermenu.addMenuItemId("gridmenuContains", function() { livegrid.openKeyword(c); }, true);
+        this.filtermenu.addMenuItemId("gridmenuExclude", function() { column.setFilterNE(); }, true);
+      }
     }
     if (livegrid.filterCount() > 0) {
-      this.filtermenu.addMenuItemId("gridmenuRefresh", function() { livegrid.filterHandler(); }, true);
       this.filtermenu.addMenuItemId("gridmenuRemoveAll", function() { livegrid.clearFilters(); }, true);
     }
-  } else if (livegrid.filterCount() > 0) {
-    this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",column.displayName), this.filtermenu, false);
-    this.filtermenu.addMenuItemId("gridmenuRemoveAll", function() { livegrid.clearFilters(); }, true);
+    this.filtermenu.addMenuItemId("gridmenuRefresh", function() { livegrid.filterHandler(); }, true);
   }
 
   // menu items for Print/Export
   this.exportmenu.clearMenu();
-  if (buffer.printVisibleSQL && typeof(buffer.dataSource)=='string') {
-    // SQL buffer
-    this.addSubMenuItem(Rico.getPhraseById('gridmenuExport'),this.exportmenu,false);
-    this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisibleSQL('html'); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAllSQL('html'); }, buffer.totalRows <= maxprint);
-    this.exportmenu.addMenuBreak();
-    this.exportmenu.addMenuItemId("gridmenuExportVis2SS", function() { buffer.printVisibleSQL('xl'); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2SS", function() { buffer.printAllSQL('xl'); }, buffer.totalRows <= maxprint);
-  } else if (maxprint > 0 && totrows>0) {
-    // any other buffer
+  if (maxprint > 0) {
     this.addSubMenuItem(Rico.getPhraseById('gridmenuExport'),this.exportmenu,false);
-    this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisible(); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAll(); }, buffer.totalRows <= maxprint);
+    if (buffer.printVisibleSQL && typeof(buffer.dataSource)=='string') {
+      // SQL buffer
+      this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisibleSQL('html'); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAllSQL('html'); }, buffer.totalRows <= maxprint);
+      this.exportmenu.addMenuBreak();
+      this.exportmenu.addMenuItemId("gridmenuExportVis2SS", function() { buffer.printVisibleSQL('xl'); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2SS", function() { buffer.printAllSQL('xl'); }, buffer.totalRows <= maxprint);
+    } else {
+      // any other buffer
+      this.addSubMenuItem(Rico.getPhraseById('gridmenuExport'),this.exportmenu,false);
+      this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisible(); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAll(); }, buffer.totalRows <= maxprint);
+    }
   }
 
   // menu items for hide/unhide
index dc6a050..bcb94c2 100644 (file)
@@ -47,11 +47,6 @@ Rico.SimpleGrid.prototype = {
       if (!this.tabs[i]) return;
       this.hdrTabs[i]=document.getElementById(this.tableId+'_tab'+i+'h');
       if (!this.hdrTabs[i]) return;
-      //if (i==0) this.tabs[i].style.position='absolute';
-      //if (i==0) this.tabs[i].style.left='0px';
-      //this.hdrTabs[i].style.position='absolute';
-      //this.hdrTabs[i].style.top='0px';
-      //this.hdrTabs[i].style.zIndex=1;
       this.thead[i]=this.hdrTabs[i];
       this.tbody[i]=this.tabs[i];
       this.headerColCnt = this.getColumnInfo(this.hdrTabs[i].rows);
@@ -63,10 +58,6 @@ Rico.SimpleGrid.prototype = {
       alert('ERROR: no columns found in "'+this.tableId+'"');
       return;
     }
-    //this.hdrHt=Math.max(Rico.nan2zero(this.hdrTabs[0].offsetHeight),this.hdrTabs[1].offsetHeight);
-    //for (i=0; i<2; i++) {
-    //  if (i==0) this.tabs[i].style.top=this.hdrHt+'px';
-    //}
     this.createColumnArray('SimpleGridColumn');
     this.pageSize=this.columns[0].dataColDiv.childNodes.length;
     this.sizeDivs();
index 4dda072..e4004a9 100644 (file)
@@ -12,7 +12,7 @@ div.ricoLG_outerDiv div.ricoLG_cell, div.ricoLG_outerDiv div.ricoLG_cell *, div.
   color:#000;\r
 }\r
 \r
-.ricoLG_top {\r
+table.ricoLG_table {\r
   border-top:1px solid #523A0B !important;\r
 }\r
 \r
index 277fc23..6632025 100644 (file)
@@ -16,7 +16,7 @@ tr.ricoLG_hdg th, tr.ricoLG_hdg td, table.ricoLiveGrid thead td, table.ricoLiveG
   background-color: #FFF !important;\r
 }\r
 \r
-.ricoLG_bottom div.ricoLG_cell, table.ricoLG_top, table.ricoLG_top thead th, table.ricoLG_top thead td, table.ricoLiveGrid td, table.ricoLiveGrid th, .ricoLG_bottom th, .ricoLG_bottom td {\r
+.ricoLG_bottom div.ricoLG_cell, table.ricoLG_table, thead.ricoLG_top th, thead.ricoLG_top td, table.ricoLiveGrid td, table.ricoLiveGrid th, .ricoLG_bottom th, .ricoLG_bottom td {\r
   border-color: #CCC !important;\r
 }\r
 \r
index 897eb83..97a7443 100644 (file)
@@ -44,7 +44,7 @@ div.ricoLG_highlightDiv {
   border: 2px solid black;\r
 }\r
 \r
-.ricoLG_table, table.ricoLiveGrid {\r
+.ricoLG_table, .ricoLG_scrollTab, table.ricoLiveGrid {\r
   margin: 0px;\r
   padding: 0px;\r
   border-right: 1px solid silver;\r
@@ -96,11 +96,11 @@ div.ricoLG_col {
   width:100px;\r
 }\r
 \r
-table.ricoLG_top thead div.ricoLG_col {\r
+thead.ricoLG_top div.ricoLG_col {\r
   position:relative;\r
 }\r
 \r
-table.ricoLG_top thead div.ricoLG_Resize {\r
+thead.ricoLG_top div.ricoLG_Resize {\r
   position:absolute;\r
   width:5px;\r
   height:100%;\r
@@ -114,17 +114,17 @@ table.ricoLG_top thead div.ricoLG_Resize {
   border-width: 0px 0px 1px 0px;\r
 }\r
 \r
-table.ricoLG_top, table.ricoLiveGrid  {\r
+table.ricoLG_table, table.ricoLiveGrid  {\r
   border-top: 1px solid silver;\r
 }\r
 \r
-table.ricoLG_top thead th, table.ricoLG_top thead td, table.ricoLiveGrid td, table.ricoLiveGrid th {\r
+thead.ricoLG_top th, thead.ricoLG_top td, table.ricoLiveGrid td, table.ricoLiveGrid th {\r
   border-style: solid;\r
   border-color: silver;\r
   border-width: 0px 0px 1px 1px;\r
 }\r
 \r
-* html table.ricoLG_top thead th, * html table.ricoLG_top thead td, * html table.ricoLiveGrid td, * html table.ricoLiveGrid th {\r
+* html thead.ricoLG_top th, * html thead.ricoLG_top td, * html table.ricoLiveGrid td, * html table.ricoLiveGrid th {\r
   position: relative; /* IE6  only */\r
 }\r
 \r
@@ -144,11 +144,12 @@ div.ricoLG_cell, table.ricoLiveGrid td, table.ricoLiveGrid th {
        padding-bottom:3px;\r
 }\r
 \r
-div.ricoLG_messageDiv {\r
+.ricoLG_messageDiv {\r
   font-weight:bold;\r
   font-size:larger;\r
   text-align:center;\r
   padding:1em;\r
+  background-color: #EEE;\r
   opacity:0.8;\r
 }\r
 \r
@@ -167,24 +168,12 @@ span.ricoCaption {
   font-weight: bold;\r
 }\r
 \r
-div.alignleft {\r
-  text-align: left;\r
-}\r
-\r
-div.aligncenter {\r
-  text-align: center;\r
-}\r
-\r
-div.alignright {\r
-  text-align: right;\r
-}\r
-\r
 span.ricoSessionTimer {\r
   background-color:black;\r
   color:white;\r
 }\r
 \r
-table.ricoLG_top thead option, table.ricoLG_top thead select, table.ricoLG_top thead input {\r
+thead.ricoLG_top option, thead.ricoLG_top select, thead.ricoLG_top input {\r
   font-weight: normal;\r
   font-size: 8pt !important;\r
   padding: 1px;\r
index 4a6763f..a3ea9a4 100644 (file)
@@ -23,8 +23,8 @@ tr.ricoLG_hdg .ricoLG_cell a:hover {
 .ricoLG_bottom  a, .ricoLG_bottom  a:link { color: #325C91; }
 .ricoLG_bottom  a:visited { color: #466C8E; }
 .ricoLG_bottom a:hover, .ricoLG_bottom  a:focus { color: #1E4C94; }
-.ricoLG_table {
-  background: #f1f8ee;
+.ricoLG_bottom {
+  background-color: #f1f8ee;
   color: #033;
 }
 div.ricoLG_messageDiv {
index 86f6c9d..cb46cba 100644 (file)
 var Rico = {
   Version: '3.0b2',
   theme: {},
+  onLoadCallbacks: [],
+  windowIsLoaded: false,
+  preloadMsgs: '',
+  inputtypes: {search: 0, number: 0, range: 0, color: 0, tel: 0, url: 0, email: 0, date: 0, month: 0, week: 0, time: 0, datetime: 0, 'datetime-local': 0},
 
   init : function() {
     try {  // fix IE background image flicker (credit: www.mister-pixel.com)
       document.execCommand("BackgroundImageCache", false, true);
     } catch(err) {}
-    if (typeof Rico_CONFIG == 'object') {
-      if (Rico_CONFIG.jsDir) this.setPaths(Rico_CONFIG.jsDir);
-      this.setBackgroundStyles();
-      if (Rico_CONFIG.enableLogging) this.enableLogging();
-    }
-    this.preloadMsgs='';
-    this.baseHref= location.protocol + "//" + location.host;
-    this.windowIsLoaded=false;
-    this.onLoadCallbacks=[];
+    if (typeof Rico_CONFIG == 'object') this.setConfig(Rico_CONFIG);
     this.onLoad(function() { Rico.log('Pre-load messages:\n'+Rico.preloadMsgs); });
   },
 
+  // called by rico2xxx.js
   _bindLoadEvent : function() {
     Rico.eventBind(window,"load", Rico.eventHandle(Rico,'windowLoaded'));
   },
 
-  setPaths : function(jsDir) {
-    this.jsDir = jsDir;
-  },
-
-  setBackgroundStyles: function() {
+  setConfig : function(ConfigObj) {
     var el = document.createElement('style');
     document.getElementsByTagName('head')[0].appendChild(el);
     if (!window.createPopup) { /* For Safari */
       el.appendChild(document.createTextNode(''));
     }
     var s = document.styleSheets[document.styleSheets.length - 1];
-    this.addCssRule(s,'.rico-icon',Rico_CONFIG.imgIcons,'no-repeat');
-    this.addCssRule(s,'.ricoLG_Resize',Rico_CONFIG.imgResize,'repeat');
-    if (Rico_CONFIG.imgHeading) {
-      var repeat='repeat-x scroll left center';
-      this.addCssRule(s,'tr.ricoLG_hdg th',Rico_CONFIG.imgHeading,repeat);
-      this.addCssRule(s,'tr.ricoLG_hdg td',Rico_CONFIG.imgHeading,repeat);
-      this.addCssRule(s,'table.ricoLiveGrid thead td',Rico_CONFIG.imgHeading,repeat);
-      this.addCssRule(s,'table.ricoLiveGrid thead th',Rico_CONFIG.imgHeading,repeat);
-      this.addCssRule(s,'.ricoTitle',Rico_CONFIG.imgHeading,repeat);
-      this.addCssRule(s,'.Rico_accTitle',Rico_CONFIG.imgHeading,repeat);
+    this.addCssBackgroundRule(s,'.rico-icon',ConfigObj.imgIcons,'no-repeat');
+    this.addCssBackgroundRule(s,'.ricoLG_Resize',ConfigObj.imgResize,'repeat');
+    if (ConfigObj.imgHeading) {
+      var repeat='repeat-x';
+      var pos='left center';
+      this.addCssBackgroundRule(s,'tr.ricoLG_hdg th',ConfigObj.imgHeading,repeat,pos);
+      this.addCssBackgroundRule(s,'tr.ricoLG_hdg td',ConfigObj.imgHeading,repeat,pos);
+      this.addCssBackgroundRule(s,'table.ricoLiveGrid thead td',ConfigObj.imgHeading,repeat,pos);
+      this.addCssBackgroundRule(s,'table.ricoLiveGrid thead th',ConfigObj.imgHeading,repeat,pos);
+      this.addCssBackgroundRule(s,'.ricoTitle',ConfigObj.imgHeading,repeat,pos);
+      this.addCssBackgroundRule(s,'.Rico_accTitle',ConfigObj.imgHeading,repeat,pos);
     }
+
+    if (ConfigObj.enableLogging) this.enableLogging();
+    if (ConfigObj.enableHTML5) this._CheckInputTypes();
   },
 
-  addCssRule: function(sheet,selector,imageUrl,repeat) {
+  addCssBackgroundRule: function(sheet,selector,imageUrl,repeat,position) {
     if (!imageUrl) return;
-    var rule="background:url('"+imageUrl+"') "+repeat;
+    this.addCssRule(sheet,selector,"background-image:url('"+imageUrl+"')");
+    this.addCssRule(sheet,selector,"background-repeat:"+repeat);
+    if (position) this.addCssRule(sheet,selector,"background-position:"+position);
+  },
+
+  addCssRule: function(sheet,selector,rule) {
     if (sheet.addRule) {
       sheet.addRule(selector, rule);
     } else if (sheet.insertRule) {
@@ -76,13 +78,6 @@ var Rico = {
     }
   },
 
-  languageInclude : function(lang2) {
-    var el = document.createElement('script');
-    el.type = 'text/javascript';
-    el.src = this.jsDir+"ricoLocale_"+lang2+".js";
-    document.getElementsByTagName('head')[0].appendChild(el);
-  },
-
   // called by the document onload event
   windowLoaded: function() {
     this.windowIsLoaded=true;
@@ -92,6 +87,16 @@ var Rico = {
       if (callback) callback();
     }
   },
+  
+  // check for availability of HTML5 input types
+  _CheckInputTypes: function() {
+    var i = document.createElement("input");
+    for (var itype in this.inputtypes) {
+      i.setAttribute("type", "text");
+      i.setAttribute("type", itype);
+      this.inputtypes[itype]=(i.type !== "text");
+    }
+  },
 
   onLoad: function(callback,frontOfQ) {
     if (frontOfQ)
@@ -551,19 +556,18 @@ getPhraseById: function(phraseId) {
  * Format a positive number (integer or float)
  * @param posnum number to format
  * @param decPlaces the number of digits to display after the decimal point
- * @param thouSep the character to use as the thousands separator
- * @param decPoint the character to use as the decimal point
+ * @param thouSep boolean indicating whether to insert thousands separator
  * @returns formatted string
  */
-formatPosNumber: function(posnum,decPlaces,thouSep,decPoint) {
+formatPosNumber: function(posnum,decPlaces,thouSep) {
   var a=posnum.toFixed(decPlaces).split(/\./);
   if (thouSep) {
     var rgx = /(\d+)(\d{3})/;
     while (rgx.test(a[0])) {
-      a[0]=a[0].replace(rgx, '$1'+thouSep+'$2');
+      a[0]=a[0].replace(rgx, '$1'+Rico.thouSep+'$2');
     }
   }
-  return a.join(decPoint);
+  return a.join(Rico.decPoint);
 },
 
 /**
@@ -575,8 +579,7 @@ formatPosNumber: function(posnum,decPlaces,thouSep,decPoint) {
  * @param fmt may contain any of the following:<dl>
  *   <dt>multiplier </dt><dd> the original number is multiplied by this amount before formatting</dd>
  *   <dt>decPlaces  </dt><dd> number of digits to the right of the decimal point</dd>
- *   <dt>decPoint   </dt><dd> character to be used as the decimal point</dd>
- *   <dt>thouSep    </dt><dd> character to use as the thousands separator</dd>
+ *   <dt>thouSep    </dt><dd> boolean indicating whether to insert thousands separator</dd>
  *   <dt>prefix     </dt><dd> string added to the beginning of the result (e.g. a currency symbol)</dd>
  *   <dt>suffix     </dt><dd> string added to the end of the result (e.g. % symbol)</dd>
  *   <dt>negSign    </dt><dd> specifies format for negative numbers: L=leading minus, T=trailing minus, P=parens</dd>
@@ -587,15 +590,14 @@ formatNumber : function(n,fmt) {
   if (isNaN(n)) return 'NaN';
   if (typeof fmt.multiplier=='number') n*=fmt.multiplier;
   var decPlaces=typeof fmt.decPlaces=='number' ? fmt.decPlaces : 0;
-  var thouSep=typeof fmt.thouSep=='string' ? fmt.thouSep : this.thouSep;
-  var decPoint=typeof fmt.decPoint=='string' ? fmt.decPoint : this.decPoint;
+  var thouSep=typeof fmt.thouSep=='undefined' ? true : this.thouSep;
   var prefix=fmt.prefix || "";
   var suffix=fmt.suffix || "";
   var negSign=typeof fmt.negSign=='string' ? fmt.negSign : "L";
   negSign=negSign.toUpperCase();
   var s,cls;
   if (n<0.0) {
-    s=this.formatPosNumber(-n,decPlaces,thouSep,decPoint);
+    s=this.formatPosNumber(-n,decPlaces,thouSep);
     if (negSign=="P") s="("+s+")";
     s=prefix+s;
     if (negSign=="L") s="-"+s;
@@ -603,7 +605,7 @@ formatNumber : function(n,fmt) {
     cls='negNumber';
   } else {
     cls=n==0.0 ? 'zeroNumber' : 'posNumber';
-    s=prefix+this.formatPosNumber(n,decPlaces,thouSep,decPoint);
+    s=prefix+this.formatPosNumber(n,decPlaces,thouSep);
   }
   return "<span class='"+cls+"'>"+s+suffix+"</span>";
 },
@@ -641,7 +643,7 @@ formatDate : function(d,fmt) {
       datefmt=this.dateFmt;
       break;
   }
-  return datefmt.replace(/(yyyy|yy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
+  return datefmt.replace(/(yyyy|yy|mmmm|mmm|mm|dddd|ddd|dd|d|hh|nn|ss|a\/p)/gi,
     function($1) {
       var h;
       switch ($1) {
index b48b3fa..cdc61e0 100644 (file)
@@ -1547,7 +1547,6 @@ this.loadXMLDoc(g.name)
 }}};
 if(typeof Rico=="undefined"){throw ("GridCommon requires the Rico JavaScript framework")
 }Rico.GridCommon={baseInit:function(){this.options={saveColumnInfo:{width:true,filter:false,sort:false},cookiePrefix:"RicoGrid.",allowColResize:true,windowResize:true,click:null,dblclick:null,contextmenu:null,menuEvent:"dblclick",defaultWidth:-1,scrollBarWidth:19,minScrollWidth:100,frozenColumns:0,exportWindow:"height=400,width=500,scrollbars=1,menubar=1,resizable=1,location=0,toolbar=0,status=0",exportStyleList:["background-color","color","text-align","font-weight","font-size","font-family"],exportImgTags:false,exportFormFields:true,FilterLocation:null,FilterAllToken:"___ALL___",columnSpecs:[]};
-this.colWidths=[];
 this.hdrCells=[];
 this.headerColCnt=0;
 this.headerRowIdx=0;
@@ -1938,7 +1937,7 @@ a++){b.push(escape(c.filterValues[a]))
 }d.push("f"+e+":"+b.join("~"))
 }}Rico.setCookie(this.options.cookiePrefix+this.tableId,d.join(","),this.options.cookieDays,this.options.cookiePath,this.options.cookieDomain)
 }};
-Rico.ColumnConst={UNFILTERED:0,SYSTEMFILTER:1,USERFILTER:2,UNSORTED:0,SORT_ASC:"ASC",SORT_DESC:"DESC",MINWIDTH:10,DOLLAR:{type:"number",prefix:"$",decPlaces:2,ClassName:"alignright"},EURO:{type:"number",prefix:"&euro;",decPlaces:2,ClassName:"alignright"},PERCENT:{type:"number",suffix:"%",decPlaces:2,multiplier:100,ClassName:"alignright"},QTY:{type:"number",decPlaces:0,ClassName:"alignright"},DEFAULT:{type:"showTags"}};
+Rico.ColumnConst={UNFILTERED:0,SYSTEMFILTER:1,USERFILTER:2,UNSORTED:0,SORT_ASC:"ASC",SORT_DESC:"DESC",MINWIDTH:10};
 Rico.TableColumnBase=function(){};
 Rico.TableColumnBase.prototype={baseInit:function(h,g,e,d){Rico.log("TableColumnBase.init index="+g+" tabIdx="+d);
 this.liveGrid=h;
@@ -1961,14 +1960,9 @@ this.mouseMoveHandler=Rico.eventHandle(this,"handleMouseMove");
 this.mouseUpHandler=Rico.eventHandle(this,"handleMouseUp");
 this.mouseOutHandler=Rico.eventHandle(this,"handleMouseOut");
 this.fieldName="col"+this.index;
+this.format={type:"text"};
 var b=h.options.columnSpecs[g];
-this.format=Rico.extend({},Rico.ColumnConst.DEFAULT);
-switch(typeof b){case"object":if(typeof b.format=="string"){Rico.extend(this.format,Rico.ColumnConst[b.format.toUpperCase()])
-}Rico.extend(this.format,b);
-break;
-case"string":if(b.slice(0,4)=="spec"){b=b.slice(4).toUpperCase()
-}if(typeof Rico.ColumnConst[b]=="object"){Rico.extend(this.format,Rico.ColumnConst[b])
-}break
+if(typeof b=="object"){Rico.extend(this.format,b)
 }Rico.addClass(this.dataColDiv,this.colClassName());
 this.visible=true;
 if(typeof this.format.visible=="boolean"){this.visible=this.format.visible
@@ -1999,19 +1993,10 @@ Rico.eventBind(a,"mousedown",this.mouseDownHandler,false)
 if(b.length>0){return b[0].innerHTML
 }else{return Rico.stripTags(a.innerHTML)
 }},_clear:function(a){a.innerHTML="&nbsp;"
-},clearCell:function(d){var c=this.cell(d);
-this._clear(c,d);
-if(!this.liveGrid.buffer){return
-}var b=this.liveGrid.buffer.options.acceptAttr;
-for(var a=0;
-a<b.length;
-a++){switch(b[a]){case"style":c.style.cssText="";
-break;
-case"class":c.className="";
-break;
-default:c["_"+b[a]]="";
-break
-}}},dataTable:function(){return this.liveGrid.tabs[this.tabIdx]
+},clearCell:function(b){var a=this.cell(b);
+this._clear(a,b);
+if(this.liveGrid.buffer&&this.liveGrid.buffer.options.acceptStyle){a.style.cssText=""
+}},dataTable:function(){return this.liveGrid.tabs[this.tabIdx]
 },numRows:function(){return this.dataColDiv.childNodes.length
 },clearColumn:function(){var b=this.numRows();
 for(var a=0;
@@ -2332,9 +2317,10 @@ this.foundRowCount=false;
 this.totalRows=0;
 this.rowcntContent="";
 this.rcvdOffset=-1;
-this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptAttr:[]};
+this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptStyle:false};
 Rico.extend(this.options,a||{});
-if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows)
+if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows);
+b.parentNode.removeChild(b)
 }else{this.clear()
 }},registerGrid:function(a){this.liveGrid=a
 },setTotalRows:function(a){if(typeof(a)!="number"){a=this.size
@@ -2348,11 +2334,11 @@ case"datamax":this.liveGrid.setPageSize(a);
 break;
 default:this.liveGrid.updateHeightDiv();
 break
-}},loadRowsFromTable:function(h,g){var e=new Array();
+}},loadRowsFromTable:function(h,g){var e=[];
 var a=h.getElementsByTagName("tr");
 for(var d=g||0;
 d<a.length;
-d++){var f=new Array();
+d++){var f=[];
 var c=a[d].getElementsByTagName("td");
 for(var b=0;
 b<c.length;
@@ -2369,35 +2355,17 @@ a++){b[c][a]=b[c][a].toString()
 this.startPos=0;
 this.size=this.baseRows.length
 },dom2jstable:function(f){Rico.log("dom2jstable: encoded="+this.options.isEncoded);
-var e=new Array();
+var e=[];
 var a=f.getElementsByTagName("tr");
 for(var d=0;
 d<a.length;
-d++){var g=new Array();
+d++){var g=[];
 var c=a[d].getElementsByTagName("td");
 for(var b=0;
 b<c.length;
 b++){g[b]=Rico.getContentAsString(c[b],this.options.isEncoded)
 }e.push(g)
 }return e
-},dom2jstableAttr:function(e,b){var h=this.options.acceptAttr;
-Rico.log("dom2jstableAttr start, # attr="+h.length);
-var f=new Array();
-var g=e.getElementsByTagName("tr");
-for(var d=b||0;
-d<g.length;
-d++){var m=new Array();
-var l=g[d].getElementsByTagName("td");
-for(var c=0;
-c<l.length;
-c++){m[c]={};
-for(var a=0;
-a<h.length;
-a++){m[c]["_"+h[a]]=l[c].getAttribute(h[a])
-}if(Rico.isIE){m[c]._class=l[c].getAttribute("className")
-}}f.push(m)
-}Rico.log("dom2jstableAttr end");
-return f
 },_blankRow:function(){var a=[];
 for(var b=0;
 b<this.liveGrid.columns.length;
@@ -2479,8 +2447,8 @@ this.windowPos=b
 },bufferRow:function(a){return this.windowStart+a
 },getWindowCell:function(c,b){var a=this.bufferRow(c);
 return this.isVisible(a)&&b<this.rows[a].length?this.rows[a][b]:null
-},getWindowAttr:function(c,b){var a=this.bufferRow(c);
-return this.attr&&this.isVisible(a)&&b<this.attr[a].length?this.attr[a][b]:null
+},getWindowStyle:function(c,b){var a=this.bufferRow(c);
+return this.attr&&this.isVisible(a)&&b<this.attr[a].length?this.attr[a][b]:""
 },getWindowValue:function(b,a){return this.getWindowCell(b,a)
 },setWindowValue:function(d,b,c){var a=this.bufferRow(d);
 if(a>=this.windowEnd){return false
@@ -2495,7 +2463,7 @@ if(typeof a=="string"){this.rows[d][b]._style=a
 return true
 },getRows:function(f,d){var e=f-this.startPos;
 var a=Math.min(e+d,this.size);
-var c=new Array();
+var c=[];
 for(var b=e;
 b<a;
 b++){c.push(this.rows[b])
@@ -2735,7 +2703,7 @@ this.highlightDiv[b].style[b%2==0?"height":"width"]="0px"
 }}for(b=0;
 b<3;
 b++){this.tabs[b]=document.createElement("table");
-this.tabs[b].className="ricoLG_table";
+this.tabs[b].className=(b<2)?"ricoLG_table":"ricoLG_scrollTab";
 this.tabs[b].border=0;
 this.tabs[b].cellPadding=0;
 this.tabs[b].cellSpacing=0;
@@ -2743,7 +2711,7 @@ this.tabs[b].id=this.tableId+"_tab"+b
 }for(b=0;
 b<2;
 b++){this.thead[b]=this.tabs[b].createTHead();
-Rico.addClass(this.tabs[b],"ricoLG_top");
+this.thead[b].className="ricoLG_top";
 if(Rico.theme.gridheader){Rico.addClass(this.thead[b],Rico.theme.gridheader)
 }}for(b=0;
 b<2;
@@ -2792,12 +2760,12 @@ var j,d=this.filterId(h);
 var i=l.getElementsByTagName("div");
 var g=Rico.getStyle(this.cell(0,h),"textAlign");
 i[1].style.textAlign=g;
-switch(f.filterUI.charAt(0)){case"t":j=Rico.createFormField(i[1],"input","text",d,d);
+switch(f.filterUI.charAt(0)){case"t":j=Rico.createFormField(i[1],"input",Rico.inputtypes.search?"search":"text",d,d);
 var n=f.filterUI.match(/\d+/);
 j.maxLength=f.Length||50;
 j.size=n?parseInt(n,10):10;
-i[1].appendChild(Rico.clearButton(Rico.eventHandle(e,"filterClear")));
-if(e.filterType==Rico.ColumnConst.USERFILTER&&e.filterOp=="LIKE"){var k=e.filterValues[0];
+if(j.type!="search"){i[1].appendChild(Rico.clearButton(Rico.eventHandle(e,"filterClear")))
+}if(e.filterType==Rico.ColumnConst.USERFILTER&&e.filterOp=="LIKE"){var k=e.filterValues[0];
 if(k.charAt(0)=="*"){k=k.substr(1)
 }if(k.slice(-1)=="*"){k=k.slice(0,-1)
 }j.value=k;
@@ -2925,7 +2893,7 @@ e<g.length;
 e++){a=g[e].cells;
 for(j=0,d=0;
 a.length>0;
-j++){if(a[0].className=="ricoFrozen"){if(e==this.headerRowIdx){this.options.frozenColumns=j+1
+j++){if(Rico.hasClass(a[0],"ricoFrozen")){if(e==this.headerRowIdx){this.options.frozenColumns=j+1
 }}else{d=1
 }this.thead[d].rows[e].appendChild(a[0])
 }}}Rico.log("loadHdrSrc end")
@@ -3488,9 +3456,9 @@ Rico.LiveGridColumn=function(a,d,c,b){this.initialize(a,d,c,b)
 Rico.LiveGridColumn.prototype={initialize:function(liveGrid,colIdx,hdrInfo,tabIdx){Rico.extend(this,new Rico.TableColumnBase());
 this.baseInit(liveGrid,colIdx,hdrInfo,tabIdx);
 this.buffer=liveGrid.buffer;
-if(typeof(this.format.type)!="string"||this.format.EntryType=="tinyMCE"){this.format.type="raw"
+if(typeof(this.format.type)!="string"||this.format.EntryType=="tinyMCE"){this.format.type="html"
 }if(typeof this.isNullable!="boolean"){this.isNullable=/number|date/.test(this.format.type)
-}this.isText=/raw|text|showTags/.test(this.format.type);
+}this.isText=/html|text/.test(this.format.type);
 Rico.log(" sortable="+this.sortable+" filterable="+this.filterable+" hideable="+this.hideable+" isNullable="+this.isNullable+" isText="+this.isText);
 this.fixHeaders(this.liveGrid.tableId,this.options.hdrIconsFirst);
 if(this["format_"+this.format.type]){this._format=this["format_"+this.format.type]
@@ -3611,8 +3579,6 @@ b++){this.mFilterInputs[b].checked=a
 },mFilterOtherClick:function(a){this.mFilterInputs[0].checked=false;
 this.mFilterChange=true
 },format_text:function(a){if(typeof a!="string"){return"&nbsp;"
-}else{return Rico.stripTags(a)
-}},format_showTags:function(a){if(typeof a!="string"){return"&nbsp;"
 }else{return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
 }},format_number:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
 }else{return Rico.formatNumber(a,this.format)
@@ -3620,7 +3586,7 @@ this.mFilterChange=true
 }else{var b=Rico.setISO8601(a);
 if(!b){return a
 }return(this.format.prefix||"")+Rico.formatDate(b,this.format.dateFmt||"translateDateTime")+(this.format.suffix||"")
-}},format_UTCasLocalTime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
+}},format_utcaslocaltime:function(a){if(typeof a=="undefined"||a==""||a==null){return"&nbsp;"
 }else{var c=new Date();
 var b=Rico.setISO8601(a,-c.getTimezoneOffset());
 if(!b){return a
@@ -3649,31 +3615,19 @@ this.hdrCellDiv.appendChild(this.imgSort)
 }if(!this.format.filterUI){Rico.eventBind(this.imgFilter,"click",Rico.eventHandle(this,"filterClick"),false)
 }},filterClick:function(a){if(this.filterType==Rico.ColumnConst.USERFILTER&&this.filterOp=="LIKE"){this.liveGrid.openKeyword(this.index)
 }},getValue:function(a){return this.buffer.getWindowCell(a,this.index)
-},getBufferAttr:function(a){return this.buffer.getWindowAttr(a,this.index)
+},getBufferStyle:function(a){return this.buffer.getWindowStyle(a,this.index)
 },setValue:function(b,a){this.buffer.setWindowValue(b,this.index,a)
 },_format:function(a){return a
 },_display:function(a,b){b.innerHTML=this._format(a)
 },_export:function(a){return this._format(a)
 },exportBuffer:function(a){return this._export(this.buffer.getValue(a,this.index))
-},displayValue:function(f){var a=this.getValue(f);
-if(a==null){this.clearCell(f);
+},displayValue:function(c){var a=this.getValue(c);
+if(a==null){this.clearCell(c);
 return
-}var e=this.cell(f);
-this._display(a,e,f);
-var d=this.buffer.options.acceptAttr;
-if(d.length==0){return
-}var c=this.getBufferAttr(f);
-if(c==null){return
-}for(var b=0;
-b<d.length;
-b++){c=c["_"+d[b]]||"";
-switch(d[b]){case"style":e.style.cssText=c;
-break;
-case"class":e.className=c;
-break;
-default:e["_"+d[b]]=c;
-break
-}}}};
+}var b=this.cell(c);
+this._display(a,b,c);
+if(this.buffer.options.acceptStyle){b.style.cssText=this.getBufferStyle(c)
+}}};
 Rico.TableColumn={};
 Rico.TableColumn.checkboxKey=function(a){this.initialize(a)
 };
@@ -3881,8 +3835,8 @@ this.sortmenu.addMenuItemId("gridmenuSortAsc",function(){d.sortAsc()
 this.sortmenu.addMenuItemId("gridmenuSortDesc",function(){d.sortDesc()
 },true)
 }this.filtermenu.clearMenu();
-if(d.canFilter()&&!d.format.filterUI&&(!b||d.filterType==Rico.ColumnConst.USERFILTER)){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
-d.userFilter=d.getValue(a);
+if(d.canFilter()){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
+if(!d.format.filterUI&&(!b||d.filterType==Rico.ColumnConst.USERFILTER)){d.userFilter=d.getValue(a);
 if(d.filterType==Rico.ColumnConst.USERFILTER){this.filtermenu.addMenuItemId("gridmenuRemoveFilter",function(){d.setUnfiltered(false)
 },true);
 if(d.filterOp=="LIKE"){this.filtermenu.addMenuItemId("gridmenuChgKeyword",function(){o.openKeyword(i)
@@ -3899,16 +3853,13 @@ if(d.isText){this.filtermenu.addMenuItemId("gridmenuContains",function(){o.openK
 },true)
 }this.filtermenu.addMenuItemId("gridmenuExclude",function(){d.setFilterNE()
 },true)
-}}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
-},true);
-this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
+}}}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
 },true)
-}}else{if(o.filterCount()>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",d.displayName),this.filtermenu,false);
-this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
+}this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
 },true)
-}}this.exportmenu.clearMenu();
-if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
-this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
+}this.exportmenu.clearMenu();
+if(n>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
+if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAllSQL("html")
 },f.totalRows<=n);
@@ -3917,7 +3868,7 @@ this.exportmenu.addMenuItemId("gridmenuExportVis2SS",function(){f.printVisibleSQ
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2SS",function(){f.printAllSQL("xl")
 },f.totalRows<=n)
-}else{if(n>0&&m>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
+}else{this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
 this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisible()
 });
 this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAll()
@@ -3993,7 +3944,7 @@ d[h]=a
 },clearTimer:function(){if(typeof this.timeoutHandler!="number"){return
 }window.clearTimeout(this.timeoutHandler);
 delete this.timeoutHandler
-},jsUpdate:function(a,c,f,b,d){this.clearTimer();
+},jsUpdate:function(a,c,e,b,d){this.clearTimer();
 this.processingRequest=false;
 Rico.log("jsUpdate: "+arguments.length);
 if(d){Rico.log("jsUpdate: received error="+d);
@@ -4004,14 +3955,14 @@ if(typeof b=="number"){this.rowcntContent=b.toString();
 this.rcvdRowCount=true;
 this.foundRowCount=true;
 Rico.log("jsUpdate: found RowCount="+this.rowcntContent)
-}this.updateBuffer(a,c,f);
+}this.updateBuffer(a,c,e);
 if(this.options.onAjaxUpdate){this.options.onAjaxUpdate()
 }this.updateGrid(a);
 if(this.options.TimeOut&&this.timerMsg){this.restartSessionTimer()
-}if(this.pendingRequest>=-1){var e=this.pendingRequest;
-Rico.log("jsUpdate: found pending request for offset="+e);
+}if(this.pendingRequest>=-1){var f=this.pendingRequest;
+Rico.log("jsUpdate: found pending request for offset="+f);
 this.pendingRequest=-2;
-this.fetch(e)
+this.fetch(f)
 }},ajaxUpdate:function(a,c){this.clearTimer();
 this.processingRequest=false;
 if(c.status!=200){Rico.log("ajaxUpdate: received http error="+c.status);
@@ -4035,25 +3986,27 @@ o.loadXML(f.responseText.substring(m+3))
 }if(!o){alert("Data provider returned an invalid XML response");
 Rico.log("Data provider returned an invalid XML response");
 return false
-}var e=o.getElementsByTagName("ajax-response");
-if(e==null||e.length!=1){return false
-}this.rcvdRows=0;
+}var d=o.getElementsByTagName("ajax-response");
+if(d==null||d.length!=1){alert("Received invalid response from server");
+return false
+}Rico.log("Processing ajax-response");
+this.rcvdRows=0;
 this.rcvdRowCount=false;
-var c=e[0];
-var a=c.getElementsByTagName("debug");
+var b=d[0];
+var a=b.getElementsByTagName("debug");
 for(var g=0;
 g<a.length;
 g++){Rico.log("ajaxUpdate: debug msg "+g+": "+Rico.getContentAsString(a[g],this.options.isEncoded))
-}var l=c.getElementsByTagName("error");
-if(l.length>0){var d=Rico.getContentAsString(l[0],this.options.isEncoded);
-alert("Data provider returned an error:\n"+d);
-Rico.log("Data provider returned an error:\n"+d);
+}var l=b.getElementsByTagName("error");
+if(l.length>0){var c=Rico.getContentAsString(l[0],this.options.isEncoded);
+alert("Data provider returned an error:\n"+c);
+Rico.log("Data provider returned an error:\n"+c);
 return false
-}var j=c.getElementsByTagName("rows")[0];
+}var j=b.getElementsByTagName("rows")[0];
 if(!j){Rico.log("ajaxUpdate: invalid response");
 this.liveGrid.showMsg(Rico.getPhraseById("invalidResponse"));
 return false
-}var n=c.getElementsByTagName("rowcount");
+}var n=b.getElementsByTagName("rowcount");
 if(n&&n.length==1){this.rowcntContent=Rico.getContentAsString(n[0],this.options.isEncoded);
 this.rcvdRowCount=true;
 this.foundRowCount=true;
@@ -4062,10 +4015,24 @@ Rico.log("ajaxUpdate: found RowCount="+this.rowcntContent)
 this.rcvdOffset=j.getAttribute("offset");
 Rico.log("ajaxUpdate: rcvdOffset="+this.rcvdOffset);
 var h=this.dom2jstable(j);
-var b=(this.options.acceptAttr.length>0)?this.dom2jstableAttr(j):false;
+var e=(this.options.acceptStyle)?this.dom2jstableStyle(j):false;
 this.rcvdRows=h.length;
-this.updateBuffer(k,h,b);
+this.updateBuffer(k,h,e);
 return true
+},dom2jstableStyle:function(e,b){var a=this.options.acceptStyle;
+Rico.log("dom2jstableStyle start");
+var f=[];
+var g=e.getElementsByTagName("tr");
+for(var d=b||0;
+d<g.length;
+d++){var k=[];
+var h=g[d].getElementsByTagName("td");
+for(var c=0;
+c<h.length;
+c++){k[c]=h[c].getAttribute("style")||""
+}f.push(k)
+}Rico.log("dom2jstableStyle end");
+return f
 },processResponseJSON:function(a,d){var c=Rico.getJSON(d);
 if(!c||c==null){alert("Data provider returned an invalid JSON response");
 Rico.log("Data provider returned an invalid JSON response");
@@ -4081,7 +4048,7 @@ this.rcvdRowCount=true;
 this.foundRowCount=true;
 Rico.writeDebugMsg("loadRows, found RowCount="+c.rowcount)
 }this.rcvdRows=c.rows.length;
-this.updateBuffer(a,c.rows);
+this.updateBuffer(a,c.rows,c.styles);
 return true
 },updateBuffer:function(c,a,b){this.baseRows=a;
 this.attr=b;
@@ -4266,7 +4233,6 @@ this.grid=b;
 this.options={maxDisplayLen:20,panelHeight:200,panelWidth:500,compact:false,RecordName:Rico.getPhraseById("record"),updateURL:window.location.href,showSaveMsg:"errors"};
 Rico.extend(this.options,b.options);
 var a=this;
-this.hasWF2=(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("WebForms","2.0"));
 this.menu=b.menu;
 this.menu.options.dataMenuHandler=function(d,f,g,e){return a.editMenu(d,f,g,e)
 };
@@ -4285,7 +4251,7 @@ Rico.eventBind(document,"click",Rico.eventHandle(this,"clearSaveMsg"));
 this.extraMenuItems=[];
 this.responseHandler=function(){a.processResponse()
 };
-Rico.log("Rico.TableEdit.initialize complete, hasWF2="+this.hasWF2)
+Rico.log("Rico.TableEdit.initialize complete")
 },createKeyArray:function(){this.keys=[];
 for(var a=0;
 a<this.grid.columns.length;
@@ -4471,7 +4437,7 @@ case"D":if(!b.isNullable){b.required=true
 }if(!b.Help){b.Help=b.dateFmt
 }if(typeof b.min=="string"){b.min=Rico.setISO8601(b.min)||new Date(b.min)
 }if(typeof b.max=="string"){b.max=Rico.setISO8601(b.max)||new Date(b.max)
-}if(this.hasWF2){e=Rico.createFormField(f,"input","date",a,a);
+}if(Rico.inputtypes.date){e=Rico.createFormField(f,"input","date",a,a);
 e.required=b.required;
 if(b.min){e.min=Rico.toISO8601String(b.min,3)
 }if(b.max){e.max=Rico.toISO8601String(b.max,3)
@@ -4482,7 +4448,7 @@ b.SelectCtl=null
 break;
 case"I":if(!b.isNullable){b.required=true
 }if(!b.pattern){b.pattern="int-signed"
-}if(this.hasWF2){e=Rico.createFormField(f,"input","number",a,a);
+}if(Rico.inputtypes.number){e=Rico.createFormField(f,"input","number",a,a);
 e.required=b.required;
 e.min=b.min;
 e.max=b.max;