This class automatically disables caching of the response and sets the response type to text/xml\r
</summary>\r
<remarks></remarks>\r
-</member><member name="M:Rico.TableCollection.IndexOf(System.String)">\r
+</member><member name="T:Rico.sqlParse.sqlColumn">\r
<summary>\r
- Returns the index of the table with TblName or -1 if not found\r
+ Represents a column in the select statement\r
</summary>\r
- <param name="TblName"></param>\r
- <returns></returns>\r
<remarks></remarks>\r
-</member><member name="P:Rico.GridBase.HdgRows">\r
+</member><member name="F:Rico.sqlParse.IsDistinct">\r
<summary>\r
- Lines of text displayed for each heading row\r
+ True if the select statement contains the DISTINCT keyword\r
</summary>\r
- <value></value>\r
<remarks></remarks>\r
-</member><member name="P:Rico.GridBase.DataRows">\r
+</member><member name="F:Rico.sqlParse.SelectList">\r
<summary>\r
- Lines of text displayed for each data row\r
+ List of columns in the select statement\r
</summary>\r
- <value></value>\r
<remarks></remarks>\r
-</member><member name="M:Rico.GridBase.AddColumn(Rico.Column)">\r
+</member><member name="F:Rico.sqlParse.GroupBy">\r
<summary>\r
- Adds a column to the colums array\r
+ List of "group by" items in the select statement\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.sqlParse.OrderBy">\r
+ <summary>\r
+ List of "order by" items in the select statement\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.sqlParse.FromClause">\r
+ <summary>\r
+ From clause of the select statement, including any joins\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.sqlParse.WhereClause">\r
+ <summary>\r
+ Where clause of the select statement\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.sqlParse.HavingClause">\r
+ <summary>\r
+ Having clause of the select statement\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.sqlParse.Headings">\r
+ <summary>\r
+ List of column headings in the select list.\r
+ Set after an any unparse* call.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.sqlParse.Clone">\r
+ <summary>\r
+ Returns a cloned copy of this object\r
</summary>\r
- <param name="ColumnObj"></param>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="P:Rico.GridBase.OuterDivId">\r
+</member><member name="M:Rico.sqlParse.UnparseSelect">\r
<summary>\r
- Returns the id of the outermost grid container\r
+ Builds a SQL select statement string from its parsed components\r
</summary>\r
- <value></value>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="M:Rico.GridBase.ColClassName(System.Int32)">\r
+</member><member name="M:Rico.sqlParse.UnparseSelectDistinct">\r
<summary>\r
- Returns the class name of the specified grid column\r
+ Rebuilds a SQL select statement that was parsed by ParseSelect, inserting the DISTINCT keyword\r
+ </summary>\r
+ <returns></returns>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.sqlParse.UnparseDistinctColumnAccess(System.Int32)">\r
+ <summary>\r
+ Returns a SQL select statement that will return all of the values in a particular column.\r
+ This version is meant MS Access, as it does not support ordering by column name\r
</summary>\r
<param name="colnum"></param>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="M:Rico.GridBase.GridRules">\r
+</member><member name="M:Rico.sqlParse.UnparseDistinctColumn(System.Int32)">\r
<summary>\r
- Returns the set of css rules that apply to this grid\r
+ Returns a SQL select statement that will return all of the values in a particular column.\r
+ The returned statement is not compatible MS Access, use UnparseDistinctColumnAccess() instead.\r
</summary>\r
+ <param name="colnum"></param>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="F:Rico.StyleBase.fontsize">\r
+</member><member name="M:Rico.sqlParse.UnparseColumnList">\r
<summary>\r
- font size in points\r
+ Returns the select list part of the statement as a string\r
</summary>\r
+ <returns></returns>\r
<remarks></remarks>\r
-</member><member name="F:Rico.StyleBase.GridOnly">\r
+</member><member name="M:Rico.sqlParse.UnparseWithRowNumber(System.Int32,System.Int32,System.Boolean)">\r
<summary>\r
- If true, then style is only applied to the grid, not to exports\r
+ Returns a "windowed" select query.\r
</summary>\r
+ <param name="offset">The first row number to be returned</param>\r
+ <param name="numrows">The number of rows to return</param>\r
+ <param name="includeAS">use true for SQL Server 2005+ and false for Oracle</param>\r
+ <returns></returns>\r
<remarks></remarks>\r
-</member><member name="P:Rico.StyleBase.bgcolor">\r
+</member><member name="M:Rico.sqlParse.Clear">\r
<summary>\r
- Specifies the background color\r
+ Resets the object and prepares it to parse another select statement.\r
</summary>\r
- <value></value>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.sqlParse.ParseSelect(System.String)">\r
+ <summary>\r
+ Loads a select statement into the object.\r
+ Does not handle:\r
+ <list type="bullet">\r
+ <item><description>union queries *</description></item>\r
+ <item><description>select into</description></item>\r
+ <item><description>select top</description></item>\r
+ <item><description>more than one space between "group" and "by", or "order" and "by"</description></item>\r
+ <item><description>stored procedures</description></item>\r
+ </list>\r
+ <para>* Put union queries in a view and then write your select statement against the view.</para>\r
+ </summary>\r
+ <param name="sqltext"></param>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="P:Rico.StyleBase.color">\r
+</member><member name="T:Rico.sqlParse">\r
+ <summary>\r
+ Holds a SQL select statement. Methods to load/parse a select statement from a string and to reassemble it in various ways.\r
+ Does not handle union queries.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="P:Rico.SimpleCol.Width">\r
+ <summary>\r
+ Initial width of the column in pixels. Default is to use SimpleGrid.defaultWidth.\r
+ </summary>\r
+</member><member name="F:Rico.Column.canSort">\r
+ <summary>\r
+ Is the user allowed to sort the column? Default is true.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.canDrag">\r
+ <summary>\r
+ Is the user allowed to drag a column value? Default is false.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.canFilter">\r
+ <summary>\r
+ Is the user allowed to filter the column? Default is true.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.control">\r
+ <summary>\r
+ Javascript code to create a control object, which changes the way the column data is rendered.\r
+ The disadvantage of using this approach is that the altered rendering does not get reflected in exports.\r
+ A set of controls is defined in ricoLiveGridControls.js or the developer can create their own.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.filterUI">\r
+ <summary>\r
+ If the AutoFilter option is enabled for the grid, then filterUI will control how each column is filtered. If filterUI is:\r
+ <list type="bullet">\r
+ <item><description>null or omitted, then no filter is displayed for the column.</description></item>\r
+ <item><description>'t' - will generate a text box filter and the records being displayed are filtered as the user types. May be followed by a number to indicate the size of the text box (default size is 10). </description></item>\r
+ <item><description>'s' - will generate a select list filter with all possible column values contained in the list. Populated using a 'select distinct' query if the grid's source is a SQL query.</description></item>\r
+ <item><description>'m' - will generate multi-select checklist filter, with a checkbox text to each item.</description></item>\r
+ </list>\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.filterColId">\r
+ <summary>\r
+ This setting allows the filterUI to filter a different column than where it is displayed.\r
+ This is particularly useful for dates, where you can show a year selection on an OrderDate date column for example,\r
+ but actually have it filter a hidden column OrderYear=year(OrderDate).\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.ConfirmDeleteColumn">\r
+ <summary>\r
+ The text content of this column will be included in delete confirmation messages.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.multiplier">\r
+ <summary>\r
+ If column is a number, this value can be used to multiply the database value by a factor before displaying it in the grid.\r
+ Default is 1. Automatically set to 100 if DataType is percent.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.decPlaces">\r
+ <summary>\r
+ If column is a number, this is the number of digits displayed to the right of the decimal point. Default is 0.\r
+ If DataType is dollar or euro, then decPlaces is automatically set to 2.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.thouSep">\r
+ <summary>\r
+ If column is a number, display the value with a thousands separator? Default is true.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.negSign">\r
+ <summary>\r
+ Specifies how negative numbers should be displayed. Possible values:\r
+ <list>\r
+ <item><description>L=leading minus (default)</description></item>\r
+ <item><description>T=trailing minus</description></item>\r
+ <item><description>P=parentheses</description></item>\r
+ </list>\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.prefix">\r
+ <summary>\r
+ If column is a number, this string is prepended to the number before display.\r
+ Useful for currency symbols.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.suffix">\r
+ <summary>\r
+ If column is a number, this string is appended to the number before display.\r
+ Useful for percentages and temperature values. Automatically set to % if DataType is percent.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.isNullable">\r
+ <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.Writeable">\r
+ <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.isKey">\r
+ <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.Length">\r
+ <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.Column.TypeName">\r
+ <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="P:Rico.Column.Width">\r
+ <summary>\r
+ Initial width of the column in pixels. Default is to use LiveGrid.defaultWidth.\r
+ </summary>\r
+</member><member name="M:Rico.Column.NumberFormat">\r
+ <summary>\r
+ Returns an Excel-type number format string based on decPlaces, thouSep, prefix.\r
+ </summary>\r
+ <returns></returns>\r
+ <remarks></remarks>\r
+</member><member name="P:Rico.Column.DataType">\r
<summary>\r
- Specifies the font color\r
+ Type of data stored in the column.\r
</summary>\r
<value></value>\r
<returns></returns>\r
<remarks></remarks>\r
-</member><member name="P:Rico.StyleBase.align">\r
+</member><member name="T:Rico.Column">\r
+ <summary>\r
+ Base class for a LiveGrid column\r
+ </summary>\r
+</member><member name="P:Rico.LiveGrid.formVar">\r
+ <summary>\r
+ name of Javascript object containing LiveGrid Edit\r
+ </summary>\r
+</member><member name="P:Rico.LiveGrid.bufferVar">\r
+ <summary>\r
+ name of Javascript object containing LiveGrid buffer\r
+ </summary>\r
+</member><member name="P:Rico.LiveGrid.bufferOptVar">\r
+ <summary>\r
+ name of Javascript object containing initial LiveGrid buffer options\r
+ </summary>\r
+</member><member name="F:Rico.LiveGrid.SqlCompat">\r
<summary>\r
- Specifies horizontal alignment\r
+ Provides a set of functions that mask differences across various SQL dialects. Available once dbDialect is set.\r
+ </summary>\r
+</member><member name="P:Rico.LiveGrid.rows">\r
+ <summary>\r
+ Number of visible rows in the grid.\r
+ Negative values have the following meanings:\r
+ <list type="bullet">\r
+ <item><description>-1: size grid to client window</description></item>\r
+ <item><description>-2: size grid to whichever is smaller: the client window or the data</description></item>\r
+ <item><description>-3: size grid so that the page body does not have a scrollbar (default)</description></item>\r
+ <item><description>-4: size grid to its parent node in the DOM</description></item>\r
+ </list>\r
+ </summary>\r
+</member><member name="P:Rico.LiveGrid.HtmlSourceId">\r
+ <summary>\r
+ If grid is populated from an html table, then set HtmlSourceId to the id of the source table\r
</summary>\r
<value></value>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LiveGrid.ColGroups">\r
+ <summary>\r
+ Collection of ColumnGroup objects, which define the headings used above each group of columns.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LiveGrid.Tables">\r
+ <summary>\r
+ Defines the tables used by the LiveGrid. The first table is primary/main table.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.LiveGrid.ColClassName(System.Int32)">\r
+ <summary>\r
+ Returns the class name of the specified grid column\r
+ </summary>\r
+ <param name="colnum"></param>\r
+ <returns></returns>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.LiveGrid.AddColumn(Rico.Column)">\r
+ <summary>\r
+ Adds a new column to grid, returns column index\r
+ </summary>\r
+ <param name="ColumnObj"></param>\r
<returns></returns>\r
<remarks></remarks>\r
+</member><member name="T:Rico.LiveGrid">\r
+ <summary>\r
+ Class to define a LiveGrid\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="M:Rico.TableCollection.IndexOf(System.String)">\r
+ <summary>\r
+ Returns the index of the table with TblName or -1 if not found\r
+ </summary>\r
+ <param name="TblName"></param>\r
+ <returns></returns>\r
+ <remarks></remarks>\r
+</member><member name="P:Rico.GridBase.gridVar">\r
+ <summary>\r
+ Name of grid Javascript object\r
+ </summary>\r
+</member><member name="P:Rico.GridBase.optionsVar">\r
+ <summary>\r
+ Name of grid options Javascript object\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.AutoFilter">\r
+ <summary>\r
+ If enabled, an additional row is added to the grid header where column filters are placed. \r
+ See the EditCol.filterUI property to customize each column's filter.\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.FilterAllToken">\r
+ <summary>\r
+ The token in select filters used to indicate "show all values" (default: "___ALL___").\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.defaultWidth">\r
+ <summary>\r
+ if -1 (default), then use column heading width, otherwise this is the default width in pixels\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.allowColResize">\r
+ <summary>\r
+ Allow user to resize columns? Default is true.\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.frozenColumns">\r
+ <summary>\r
+ Number of frozen columns on the left (or right if direction=rtl). Default is 0.\r
+ </summary>\r
+</member><member name="P:Rico.GridBase.menuEvent">\r
+ <summary>\r
+ Specifies when the grid's popup menu should be invoked \r
+ </summary>\r
+</member><member name="F:Rico.GridBase.DefaultStyle">\r
+ <summary>\r
+ Style used for the entire grid - headings and data.\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.DefaultHdgStyle">\r
+ <summary>\r
+ This holds the default style for headings. Use only if not using themes.\r
+ </summary>\r
+</member><member name="F:Rico.GridBase.Styles">\r
+ <summary>\r
+ Collection of styles used for individual headings.\r
+ </summary>\r
+</member><member name="P:Rico.GridBase.HdgRows">\r
+ <summary>\r
+ Lines of text displayed for each heading row\r
+ </summary>\r
+</member><member name="P:Rico.GridBase.DataRows">\r
+ <summary>\r
+ Lines of text displayed for each data row\r
+ </summary>\r
+</member><member name="P:Rico.GridBase.OuterDivId">\r
+ <summary>\r
+ Returns the id of the outermost grid container\r
+ </summary>\r
+</member><member name="M:Rico.GridBase.GetColumnIdx(System.String)">\r
+ <summary>\r
+ Returns the index of the column with the given id\r
+ </summary>\r
+</member><member name="M:Rico.GridBase.GetColumn(System.String)">\r
+ <summary>\r
+ Returns the column object with the given id\r
+ </summary>\r
+</member><member name="M:Rico.GridBase.GridRules">\r
+ <summary>\r
+ Returns the set of css rules that apply to this grid\r
+ </summary>\r
+</member><member name="T:Rico.GridBase">\r
+ <summary>\r
+ This class defines properties and functions used in SimpleGrid, LiveGrid and LiveGridEdit classes.\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.bold">\r
+ <summary>\r
+ True if the text should be displayed using a bold font\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.italic">\r
+ <summary>\r
+ True if the text should be displayed in italics\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.underline">\r
+ <summary>\r
+ True if the text should be underlined\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.fontsize">\r
+ <summary>\r
+ Font size in points\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.GridOnly">\r
+ <summary>\r
+ If true, then style is only applied to the grid, not to html or Excel exports\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.bgcolor">\r
+ <summary>\r
+ Specifies the background color. One of the 16 standard color names, or #rrggbb.\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.color">\r
+ <summary>\r
+ Specifies the font color. One of the 16 standard color names, or #rrggbb.\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.align">\r
+ <summary>\r
+ Specifies horizontal alignment: left, right, center, or none (default)\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.CssStyle">\r
+ <summary>\r
+ Used internally. Returns the style properties as a css string.\r
+ </summary>\r
+</member><member name="M:Rico.StyleBase.UnwrappedXlStyle">\r
+ <summary>\r
+ Used internally. Returns the style properties as an Excel XML string without the style tag.\r
+ </summary>\r
+</member><member name="T:Rico.StyleBase">\r
+ <summary>\r
+ Base class for all style classes as well as the Column class.\r
+ </summary>\r
+</member><member name="T:Rico.DefaultGridStyle">\r
+ <summary>\r
+ This is the style applied to the entire grid - headings and data.\r
+ </summary>\r
+</member><member name="T:Rico.DefaultHdgStyle">\r
+ <summary>\r
+ This defines the default heading style when no theme is used.\r
+ </summary>\r
+</member><member name="P:Rico.Style.StyleID">\r
+ <summary>\r
+ StyleID's should not contain spaces or other special characters.\r
+ Use a StyleID of ricoLG_evenRow or ricoLG_oddRow to stripe the grid (striping does not get exported).\r
+ Use a StyleID of ricoLG_selection to set the styling for the selected row.\r
+ </summary>\r
+</member><member name="M:Rico.Style.CssRule">\r
+ <summary>\r
+ Returns the style properties as a CSS rule\r
+ </summary>\r
+</member><member name="M:Rico.Style.WrappedXlStyle">\r
+ <summary>\r
+ Returns the style properties as an Excel XML style, including the style tag\r
+ </summary>\r
</member><member name="T:Rico.Style">\r
<summary>\r
Defines a style that can be applied to a grid cell.\r
Using a StyleID of ricoLG_evenRow or ricoLG_oddRow will stripe the grid, however striping does not get exported.\r
Using a StyleID of ricoLG_selection will set the styling for the selected row.\r
+ </summary>\r
+</member><member name="T:Rico.SimpleStyle">\r
+ <summary>\r
+ Defines styles used in Simple Grids\r
+ </summary>\r
+</member><member name="M:Rico.StyleDictionary.Add(Rico.Style)">\r
+ <summary>\r
+ Adds a Style object to the collection\r
+ </summary>\r
+ <param name="new_style"></param>\r
+</member><member name="P:Rico.StyleDictionary.Item(System.String)">\r
+ <summary>\r
+ Returns a Style object from the collection based on the style's StyleID\r
+ </summary>\r
+ <param name="StyleId"></param>\r
+</member><member name="P:Rico.StyleDictionary.Keys">\r
+ <summary>\r
+ Returns all of the StyleID's in the collection\r
+ </summary>\r
+</member><member name="P:Rico.StyleDictionary.Values">\r
+ <summary>\r
+ Returns all of the Style objects in the collection\r
+ </summary>\r
+</member><member name="M:Rico.StyleDictionary.Contains(System.String)">\r
+ <summary>\r
+ Returns true if the StyleID is in the collection\r
+ </summary>\r
+ <param name="StyleId"></param>\r
+</member><member name="M:Rico.StyleDictionary.Remove(System.String)">\r
+ <summary>\r
+ Removes the Style object with the given StyleID from the collection\r
+ </summary>\r
+ <param name="StyleId"></param>\r
+</member><member name="T:Rico.StyleDictionary">\r
+ <summary>\r
+ Container for a collection of Style objects\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.ImgHeading">\r
+ <summary>\r
+ Background image for grid headings and window titles.\r
+ Should be left unset, as it is used only for the grayedout theme (in which case it is set automatically).\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.BaseLib">\r
+ <summary>\r
+ The base Javascript library to load from http://ajax.googleapis.com/ajax/libs/, possible values include:\r
+ <list type="bullet">\r
+ <item><description>prototype/1.6/prototype.js</description></item>\r
+ <item><description>prototype/1.7/prototype.js</description></item>\r
+ <item><description>jquery/1.3/jquery.min.js</description></item>\r
+ <item><description>jquery/1.4/jquery.min.js</description></item>\r
+ <item><description>jquery/1.5/jquery.min.js</description></item>\r
+ <item><description>mootools/1.2/mootools-yui-compressed.js</description></item>\r
+ <item><description>mootools/1.3/mootools-yui-compressed.js</description></item>\r
+ <item><description>dojo/1.4/dojo/dojo.xd.js</description></item>\r
+ <item><description>dojo/1.5/dojo/dojo.xd.js</description></item>\r
+ <item><description>ext-core/3.0/ext-core.js</description></item>\r
+ <item><description>ext-core/3.1/ext-core.js</description></item>\r
+ </list>\r
+ <para>Default value is "proto_min", which loads prototype 1.7 from the server control.</para>\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.Logging">\r
+ <summary>\r
+ Enable Javascript console logging? Useful for debugging. Default is false.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.Language">\r
+ <summary>\r
+ Best left unset, in which case language will be set automatically based on request's HTTP_ACCEPT_LANGUAGE\r
+ However, if you want to present the same locale settings to all users, then you can set this value to force the desired locale.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.LoadBaseLib">\r
+ <summary>\r
+ Load base Javascript library (prototype, jQuery, etc)?\r
+ Default is true.\r
+ Set to false if library is being loaded another way. In this case, a BaseLib value is still required to indicate\r
+ which library Rico should connect to.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.Striping">\r
+ <summary>\r
+ Apply row striping to LiveGrids? Default is true. Applies only when themes are used.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.SupportedLangs">\r
+ <summary>\r
+ Comma separated list of 2 letter locales that Rico supports.\r
+ Do not set unless you have developed your own locale file.\r
+ </summary>\r
+ <remarks></remarks>\r
+</member><member name="F:Rico.LoadClient.jQueryThemePath">\r
+ <summary>\r
+ URL to load jQuery themes from.\r
+ Default is http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/\r
+ Override this value if you have a jQuery theme on your own server.\r
</summary>\r
<remarks></remarks>\r
</member><member name="P:Rico.LoadClient.LoadedLanguage">\r
<value></value>\r
<returns></returns>\r
<remarks></remarks>\r
+</member><member name="P:Rico.LoadClient.checkQueryString">\r
+ <summary>\r
+ Load settings from QueryString? true for demo, false for anything else. Default is false.\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.checkWebConfig">\r
+ <summary>\r
+ Load settings from web.config file? Default is false.\r
+ If true, then the appSettings section of web.config will be checked for the following keys (which affect the similarly named properties):\r
+ <list type="bullet">\r
+ <item><description>rico_BaseLib</description></item>\r
+ <item><description>rico_Language</description></item>\r
+ <item><description>rico_jTheme</description></item>\r
+ <item><description>rico_rTheme</description></item>\r
+ <item><description>rico_Logging</description></item>\r
+ <item><description>rico_LoadBaseLib</description></item>\r
+ <item><description>rico_Striping</description></item>\r
+ </list>\r
+ <para>Boolean values in web.config should be the strings "true" or "1" for true, and "false" or "0" for false.</para>\r
+ </summary>\r
</member><member name="M:Rico.LoadClient.InitLiveGrids">\r
<summary>\r
Initialize all grids on the page\r
</summary>\r
<returns>javascript to initialize grids</returns>\r
<remarks></remarks>\r
+</member><member name="P:Rico.LoadClient.jTheme">\r
+ <summary>\r
+ Set theme to one of the jQuery Themeroller themes. Default is no theme.\r
+ Valid values are:\r
+ black-tie, blitzer, cupertino, dark-hive, dot-luv, eggplant, excite-bike, flick, \r
+ hot-sneaks, humanity, le-frog, mint-choc, overcast, pepper-grinder, redmond, smoothness, \r
+ south-street, start, sunny, swanky-purse, trontastic, ui-darkness, ui-lightness, vader\r
+ </summary>\r
+ <value></value>\r
+ <remarks></remarks>\r
+</member><member name="P:Rico.LoadClient.rTheme">\r
+ <summary>\r
+ Set theme to one of the Rico themes. Default is no theme.\r
+ Valid values are:\r
+ coffee-with-milk, grayedout, greenHdg, seaglass, warmfall\r
+ </summary>\r
+ <value></value>\r
+ <remarks></remarks>\r
+</member><member name="T:Rico.LoadClient">\r
+ <summary>\r
+ Loads the various Javascript, CSS, and image files required to make Rico function.\r
+ </summary>\r
+ <remarks></remarks>\r
</member><member name="P:Rico.My.Resources.Resources.ResourceManager">\r
<summary>\r
Returns the cached ResourceManager instance used by this class.\r
<dd>Allow columns to be resized by the user? If true, then resizing for individual columns \r
can be disabled using <a href='#noResize'>noResize</a> in columnSpecs[].\r
\r
-<dt>panels\r
+<dt>ColGroups\r
<dd>An array of strings that can serve as secondary headings.\r
In LiveGrid Forms, they also serve as the headings for the tabbed panels on the input form.\r
\r
-<dt>PanelNamesOnTabHdr\r
-<dd>Set to 'true' for the strings in panels[] to be used as secondary headings.\r
-In LiveGrid Forms, it may be set to 'false' so that panels[] is only used on the input form.\r
+<dt>ColGroupsOnTabHdr\r
+<dd>Set to 'true' for the strings in ColGroups[] to be used as secondary headings.\r
+In LiveGrid Forms, it may be set to 'false' so that ColGroups[] is only used on the input form.\r
\r
-<dt><a name='FilterLocation'>FilterLocation</a>\r
-<dd>Specifies the heading row where filters should be placed.\r
--1 causes a new row to be appended to the header and that new row used for filtering.\r
-See also the <a href='#filterUI'>filterUI</a> option.\r
+<dt><a name='AutoFilter'>AutoFilter</a>\r
+<dd>If enabled, an additional row is added to the grid header where column filters are placed.\r
+See the <a href='#filterUI'>filterUI</a> option to customize each column's filter.\r
\r
<dt>FilterAllToken\r
-<dd>Token in select filters used to indicate "show all values" (default: "___ALL___").\r
+<dd>The token in select filters used to indicate "show all values" (default: "___ALL___").\r
</dl>\r
\r
<h4>Cookie options</h4>\r
<dd>A string that specifies when the grid's menu should be invoked\r
<ul>\r
<li>'click' -- invoke menu on single-click\r
- <li>'dblclick' -- invoke menu on double-click (default)\r
+ <li>'dblclick' -- invoke menu on double-click\r
<li>'contextmenu' -- invoke menu on right-click\r
- <li>'none' -- no pop-up menu\r
+ <li>'none' -- no pop-up menu (default)\r
</ul>\r
\r
<dt>windowResize\r
</pre>\r
\r
<dt><a name='filterUI'></a>filterUI\r
-<dd>If a <a href='#FilterLocation'>FilterLocation</a> option is specified for the grid, then filterUI will control\r
+<dd>If the <a href='#AutoFilter'>AutoFilter</a> option is enabled for the grid, then filterUI will control\r
how each column is filtered. If filterUI is:\r
<ul>\r
<li>null or omitted, then no filter is displayed for the column.\r
<li>'t' - will generate a text box filter and the records being displayed\r
are filtered as the user types. \r
-<br>May optionally be followed by a caret (^) to\r
-indicate that text box values should match the beginning of the column value.\r
-Otherwise, they can match anywhere in the column's value.\r
-<br>May also be followed by a number to indicate the size of the text box (default size is 10).\r
+<br>May be followed by a number to indicate the size of the text box (default size is 10).\r
<pre>\r
-filterUI:'t^20' \r
+filterUI:'t20' \r
// will create a text box that is 20 characters wide\r
-// text typed into the box will be compared to\r
-// the beginning of each column value\r
</pre>\r
<li>'s' - will generate a select list filter with all possible column values contained in the list.\r
Populated using a 'select distinct' query if the grid's source is a SQL query.\r
+<li>'m' - will generate multi-select checklist filter, with a checkbox text to each item.\r
</ul>\r
\r
<dt></a>filterCol\r
oForm.AddEntryField "field6", "Field #6", "T", ""\r
</pre>\r
\r
-<p>Alternatively, the panelIdx property can be set for each field as it is defined. In this\r
+<p>Alternatively, the ColGroupIdx property can be set for each field as it is defined. In this\r
case, AddPanel can be called at any time prior to DisplayPage.\r
<pre>\r
' these fields appear on the first panel\r
oForm.AddEntryField "field1", "Field #1", "T", ""\r
-oForm.CurrentField("panelIdx")=0\r
+oForm.CurrentField("ColGroupIdx")=0\r
oForm.AddEntryField "field2", "Field #2", "T", ""\r
-oForm.CurrentField("panelIdx")=0\r
+oForm.CurrentField("ColGroupIdx")=0\r
oForm.AddEntryField "field3", "Field #3", "T", ""\r
-oForm.CurrentField("panelIdx")=0\r
+oForm.CurrentField("ColGroupIdx")=0\r
\r
' these fields appear on the second panel\r
oForm.AddEntryField "field4", "Field #4", "T", ""\r
-oForm.CurrentField("panelIdx")=1\r
+oForm.CurrentField("ColGroupIdx")=1\r
oForm.AddEntryField "field5", "Field #5", "T", ""\r
-oForm.CurrentField("panelIdx")=1\r
+oForm.CurrentField("ColGroupIdx")=1\r
oForm.AddEntryField "field6", "Field #6", "T", ""\r
-oForm.CurrentField("panelIdx")=1\r
+oForm.CurrentField("ColGroupIdx")=1\r
\r
oForm.AddPanel "Panel #1"\r
oForm.AddPanel "Panel #2"\r
\r
Sub Page_Load(Sender As object, e As EventArgs)\r
Session.Timeout=60\r
- if app.OpenGrid(customer,"contextmenu") then\r
- app.SetGridOptions(order,"contextmenu")\r
- app.SetGridOptions(detail,"contextmenu")\r
+ if app.OpenGrid(customer, Rico.menuEvents.contextmenu) then\r
+ app.SetGridOptions(order, Rico.menuEvents.contextmenu)\r
+ app.SetGridOptions(detail, Rico.menuEvents.contextmenu)\r
order.sendDebugMsgs=true\r
order.LogSqlOnError=true\r
detail.sendDebugMsgs=true\r
<%@ Import Namespace="System.Data.OleDb" %>\r
<%@ Import Namespace="System.Data.SqlClient" %>\r
<%@ Import Namespace="System.Data.Odbc" %>\r
+<%@ Import Namespace="Rico" %>\r
\r
<script runat="server">\r
\r
Public dbConnection as object, accessRights as string\r
Public LastErrorMsg as String\r
Public defaultDB as String = "Northwind"\r
-Public const dbDialect = "Access" ' What kind of database are we connecting to?\r
+Public dbDialect as dbDialects = dbDialects.Access\r
\r
\r
Public Function OpenDB()\r
try\r
select case dbDialect\r
- case "Access": dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../data/" & defaultDB & ".mdb") & ";User ID=;Password=;")\r
- case "TSQL": dbConnection = new SqlConnection("Data Source=MATTSPROBOOK\SQLEXPRESS;User ID=userid;Password=password;Initial Catalog=" & defaultDB & ";")\r
- case "Oracle": dbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle;Data Source=XE;User ID=" & defaultDB & ";Password=Password;")\r
- case "MySQL": dbConnection = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=" & defaultDB & ";USER=userid;PASSWORD=password;")\r
- case "DB2": dbConnection = new OleDbConnection("Provider=IBMDADB2;Data Source=NORTHWND;Protocol=local;CurrentSchema=SCHEMA;User ID=userid;Password=password;")\r
+ case dbDialects.Access: dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../data/" & defaultDB & ".mdb") & ";User ID=;Password=;")\r
+ case dbDialects.TSQL: dbConnection = new SqlConnection("Data Source=MATTSPROBOOK\SQLEXPRESS;User ID=userid;Password=password;Initial Catalog=" & defaultDB & ";")\r
+ case dbDialects.Oracle: dbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle;Data Source=XE;User ID=" & defaultDB & ";Password=Password;")\r
+ case dbDialects.MySQL: dbConnection = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=" & defaultDB & ";USER=userid;PASSWORD=password;")\r
+ case dbDialects.DB2: dbConnection = new OleDbConnection("Provider=IBMDADB2;Data Source=NORTHWND;Protocol=local;CurrentSchema=SCHEMA;User ID=userid;Password=password;")\r
end select\r
dbConnection.Open()\r
OpenDB=true\r
end function\r
\r
\r
-Public function OpenGrid(oLiveGrid as object, optional menuevent as string = "click")\r
+Public function OpenGrid(oLiveGrid as object, optional menuevent as menuEvents = menuEvents.click)\r
OpenGrid=false\r
if not OpenApp() then\r
response.write("ERROR: " & LastErrorMsg)\r
end function\r
\r
\r
-Public sub SetGridOptions(oLiveGrid as object, optional menuevent as string = "click")\r
+Public sub SetGridOptions(oLiveGrid as object, optional menuevent as menuEvents = menuEvents.click)\r
oLiveGrid.dbConnection=Me.dbConnection\r
oLiveGrid.dbDialect=Me.dbDialect\r
\r
\r
Sub Page_Load(Sender As object, e As EventArgs)\r
Session.Timeout=60\r
- dim arEmpSql as string() = {"%alias%LastName","', '","%alias%FirstName"}\r
- dim oSqlCompat=new sqlCompatibilty(app.dbDialect)\r
- ReportsTo.SelectSql="select EmployeeID," & oSqlCompat.Concat(arEmpSql,false) & " from employees order by LastName,FirstName" \r
app.OpenGridForm(emp)\r
+ ReportsTo.SelectSql="select EmployeeID," & emp.SqlCompat.Concat(new String(){"%alias%LastName","', '","%alias%FirstName"}) & " from employees order by LastName,FirstName" \r
End Sub\r
\r
</script>\r
\r
Sub Page_Load(Sender As object, e As EventArgs)\r
Session.Timeout=60\r
- 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(ex8)\r
+ EmployeeID.SelectSql="select EmployeeID," & ex8.SqlCompat.Concat(new String(){"LastName","', '","FirstName"}) & " from employees order by LastName,FirstName" \r
End Sub\r
\r
</script>\r
<p><strong>Orders Table</strong></p>\r
\r
\r
-<Rico:LiveGridEdit runat='server' id='ex8' DefaultSort='OrderID' FilterLocation='-1'>\r
+<Rico:LiveGridEdit runat='server' id='ex8' DefaultSort='OrderID' AutoFilter='true'>\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
\r
Sub Page_Load(Sender As object, e As EventArgs)\r
Session.Timeout=60\r
- 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(nosession)\r
+ EmployeeID.SelectSql="select EmployeeID," & nosession.SqlCompat.Concat(new String(){"LastName","', '","FirstName"}) & " from employees order by LastName,FirstName" \r
End Sub\r
\r
</script>\r
<p><strong>Orders Table (without sessions)</strong></p>\r
\r
\r
-<Rico:LiveGridEdit runat='server' id='nosession' DefaultSort='OrderID' FilterLocation='-1' sessions='false'>\r
+<Rico:LiveGridEdit runat='server' id='nosession' DefaultSort='OrderID' AutoFilter='true' 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
--- /dev/null
+<%@ Page Language="VB" ResponseEncoding="iso-8859-1" %>\r
+<%@ Register TagPrefix="Rico" Assembly="Rico" NameSpace="Rico" %>\r
+<%@ Register TagPrefix="My" TagName="dbLib" Src="dbConnect.ascx" %>\r
+<My:dbLib id='app' runat='server' />\r
+\r
+<script runat="server">\r
+\r
+Sub Page_Load(Sender As object, e As EventArgs)\r
+ Session.Timeout=60\r
+ app.OpenGrid(ex2notheme)\r
+End Sub\r
+\r
+</script>\r
+\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
+<html>\r
+<head>\r
+<title>Rico LiveGrid-Example 2</title>\r
+\r
+<Rico:LoadClient id='RicoClient' checkQueryString='notheme' runat='server' />\r
+<link href="../demo.css" type="text/css" rel="stylesheet" />\r
+\r
+</head>\r
+<body>\r
+\r
+<div id='explanation'>\r
+Base Library: \r
+<script type='text/javascript'>\r
+document.write(Rico.Lib+' '+Rico.LibVersion);\r
+</script>\r
+<hr>\r
+This example shows how the entire grid can be customized by disabling the regular themes.\r
+Here we have specified:<ul>\r
+<li>A default heading style (white text on a black background)\r
+<li>Selected a custom heading style for the date columns\r
+<li>Selected a custom hover style (when you hover over the headings)\r
+<li>Selected a custom style for the date column data (red text)\r
+<li>Selected a custom row highlight when you click on a row (yellow background)\r
+<li>Specifed that ship information have a blue background when the ship country is France, and a red background when the ship country is Switzerland.\r
+</ul>\r
+Notice that when you export to Excel, styles and number formats get copied into the Excel file!\r
+One caveat: specifying a font color for a the heading cell only works when the grid's HdgHoverStyleId is set.\r
+Click on a cell to see available actions.\r
+</div>\r
+\r
+<Rico:LiveGrid runat='server' id='ex2notheme' fmt="json" DefaultSort='OrderID' menuEvent='click' frozenColumns='1' HdgHoverStyleId="GrayText" highlightElem='cursorRow'>\r
+ <Rico:DefaultHdgStyle runat='server' bgcolor="black" color="white" align="center" />\r
+ <Rico:Style runat='server' StyleID='RedHdg' bgcolor="red" color="white" align="center" />\r
+ <Rico:Style runat='server' StyleID='GrayText' color="#dddddd" />\r
+ <Rico:Style runat='server' StyleID='ricoLG_oddRow' bgcolor="#eeeeee" />\r
+ <Rico:Style runat='server' StyleID='ricoLG_selection' bgcolor="yellow" />\r
+ \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' CellStyleColID='Country' />\r
+ <Rico:TableCol runat='server' ColName='ShipCity' heading='Ship City' width='120' CellStyleColID='Country' />\r
+ <Rico:TableCol runat='server' ColName='ShipCountry' heading='Ship Country' width='90' id='Country' CellStyleColID='Country' >\r
+ <Rico:Style runat='server' StyleID='France' bgcolor="blue" color="white" />\r
+ <Rico:Style runat='server' StyleID='Switzerland' bgcolor="red" color="white" />\r
+ </Rico:TableCol>\r
+ <Rico:TableCol runat='server' ColName='OrderDate' heading='Order Date' datatype='date' width='100' HdgStyleId='RedHdg' color='red' dateFmt='d mmm yyyy' />\r
+ <Rico:TableCol runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' HdgStyleId='RedHdg' color='red' dateFmt='d mmm yyyy' />\r
+</Rico:LiveGrid>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+<%@ Page Language="VB" ResponseEncoding="iso-8859-1" %>\r
+<%@ Register TagPrefix="Rico" Assembly="Rico" NameSpace="Rico" %>\r
+<%@ Register TagPrefix="My" TagName="dbLib" Src="dbConnect.ascx" %>\r
+<My:dbLib id='app' runat='server' />\r
+\r
+<script runat="server">\r
+\r
+Sub Page_Load(Sender As object, e As EventArgs)\r
+ Session.Timeout=60\r
+ app.OpenGrid(ex2style)\r
+End Sub\r
+\r
+</script>\r
+\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
+<html>\r
+<head>\r
+<title>Rico LiveGrid-Example 2</title>\r
+\r
+<Rico:LoadClient checkQueryString='true' runat='server' />\r
+<link href="../demo.css" type="text/css" rel="stylesheet" />\r
+\r
+</head>\r
+<body>\r
+\r
+<div id='explanation'>\r
+Base Library: \r
+<script type='text/javascript'>\r
+document.write(Rico.Lib+' '+Rico.LibVersion);\r
+</script>\r
+<hr>\r
+This example shows that columns can be styled. The two date columns have the font color set to red.\r
+Notice that when you export to Excel, those Excel columns are also red. Styles and number formats get copied into the Excel export!\r
+Click on a cell to see available actions.\r
+</div>\r
+\r
+<Rico:LiveGrid runat='server' id='ex2style' 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' color='red' />\r
+ <Rico:TableCol runat='server' ColName='ShippedDate' heading='Ship Date' datatype='date' width='100' color='red' />\r
+</Rico:LiveGrid>\r
+\r
+</body>\r
+</html>\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_ex2notheme.aspx">LiveGrid with many custom styles</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
grandtotals(i)=0\r
next\r
\r
- ' define heading\r
- ex1.AddHeadingRow(true)\r
- ex1.AddCell("Product")\r
- ex1.AddCell("Gross Sales")\r
- ex1.AddCell("Discounts")\r
- ex1.AddCell("Net Sales")\r
- ex1.AddCell("Avg Discount")\r
-\r
command = app.dbConnection.CreateCommand()\r
command.CommandText="select CategoryName,ProductName, " & _\r
"SUM(od.UnitPrice*Quantity) as GrossSales, " & _\r
Discounts=rdr("Discounts")\r
if category<>lastCategory then\r
if not IsNothing(lastCategory) then\r
- AddRow("Subtotal",subtotals(0),subtotals(1))\r
- ex1.SetRowAttr("class","Subtotal")\r
+ AddRow("Subtotal",subtotals(0),subtotals(1),"Subtotal")\r
end if\r
ex1.AddDataRow\r
- ex1.SetRowAttr("class","CatHead")\r
- ex1.AddCell(category)\r
- ex1.AddCell("")\r
- ex1.AddCell("")\r
- ex1.AddCell("")\r
- ex1.AddCell("")\r
+ ex1.AddCell(new SimpleGrid.TextCell(category, "CatHead"))\r
+ ex1.AddCell(new SimpleGrid.TextCell("", "CatHead"))\r
+ ex1.AddCell(new SimpleGrid.TextCell("", "CatHead"))\r
+ ex1.AddCell(new SimpleGrid.TextCell("", "CatHead"))\r
+ ex1.AddCell(new SimpleGrid.TextCell("", "CatHead"))\r
for i=0 to 1\r
subtotals(i)=0\r
next\r
grandtotals(0)+=Gross\r
subtotals(1)+=Discounts\r
grandtotals(1)+=Discounts\r
- AddRow(rdr("ProductName"),Gross,Discounts)\r
+ AddRow(rdr("ProductName"),Gross,Discounts,"")\r
end while\r
rdr.Close()\r
if not IsNothing(lastCategory) then\r
- AddRow("Subtotal",subtotals(0),subtotals(1))\r
- ex1.SetRowAttr("class","Subtotal")\r
+ AddRow("Subtotal",subtotals(0),subtotals(1),"Subtotal")\r
end if\r
- AddRow("Grand Total",grandtotals(0),grandtotals(1))\r
- ex1.SetRowAttr("class","GrandTotal")\r
+ AddRow("Grand Total",grandtotals(0),grandtotals(1),"GrandTotal")\r
End Sub\r
\r
-sub AddRow(ProductName as String, Gross as Double, Discounts as Double)\r
+sub AddRow(ProductName as String, Gross as Double, Discounts as Double, StyleId as String)\r
dim pct as double\r
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
+ ex1.AddCell(new SimpleGrid.TextCell(ProductName, StyleId))\r
+ ex1.AddCell(new SimpleGrid.NumberCell(Gross, StyleId & "Number"))\r
+ ex1.AddCell(new SimpleGrid.NumberCell(Discounts, StyleId & "Number"))\r
+ ex1.AddCell(new SimpleGrid.NumberCell(Gross-Discounts, StyleId & "Number"))\r
pct=Discounts/Gross\r
- ex1.AddCell(pct.toString("0%"))\r
- ex1.SetCellAttr("class","number")\r
+ ex1.AddCell(new SimpleGrid.NumberCell(pct, StyleId & "Percent"))\r
end sub\r
\r
Protected Overrides Sub Render(writer as HTMLTextWriter)\r
select case lcase(Request.QueryString("fmt"))\r
- case "xl": ex1.RenderExcel("rico.xls")\r
- case "csv": ex1.RenderDelimited("rico.csv", ",", "")\r
+ case "xl": ex1.RenderExcel("ProductSalesSummary.xml")\r
+ case "csv": ex1.RenderDelimited("ProductSalesSummary.csv")\r
case else: MyBase.Render(writer) ' output html\r
end select\r
End Sub\r
}\r
</script>\r
\r
-<style type="text/css">\r
-.CatHead {\r
- background:blue;\r
- color:white;\r
- font-weight:bold !important;\r
-}\r
-.Subtotal {\r
- background:#888;\r
- color:white;\r
- font-weight:bold !important;\r
-}\r
-.GrandTotal {\r
- background:black;\r
- color:white;\r
- font-weight:bold !important;\r
-}\r
-div.ricoLG_cell {\r
- white-space:nowrap;\r
-}\r
-.number {\r
- text-align: right;\r
-}\r
-</style>\r
-\r
</head>\r
\r
<body>\r
<button onclick="ExportGridServer('csv')">Export from server<br>to CSV</button>\r
</div>\r
\r
-<Rico:SimpleGrid runat='server' id='ex1' FrozenCols='1'>\r
- <Rico:Column runat='server' width='200' />\r
- <Rico:Column runat='server' />\r
- <Rico:Column runat='server' />\r
- <Rico:Column runat='server' />\r
- <Rico:Column runat='server' />\r
+<Rico:SimpleGrid runat='server' id='ex1' frozenColumns='1'>\r
+ <Rico:SimpleStyle runat='server' StyleID='CatHead' bgcolor="blue" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='Subtotal' bgcolor="#888888" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='GrandTotal' bgcolor="black" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='Number' NumberFormat="$#,##0" align="right" />\r
+ <Rico:SimpleStyle runat='server' StyleID='SubtotalNumber' NumberFormat="$#,##0" align="right" bgcolor="#888888" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='GrandTotalNumber' NumberFormat="$#,##0" align="right" bgcolor="black" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='Percent' NumberFormat="0%" align="right" />\r
+ <Rico:SimpleStyle runat='server' StyleID='SubtotalPercent' NumberFormat="0%" align="right" bgcolor="#888888" color="white" bold="true" />\r
+ <Rico:SimpleStyle runat='server' StyleID='GrandTotalPercent' NumberFormat="0%" align="right" bgcolor="black" color="white" bold="true" />\r
+\r
+ <Rico:SimpleCol runat='server' heading="Product" width='200' />\r
+ <Rico:SimpleCol runat='server' heading="Gross Sales" />\r
+ <Rico:SimpleCol runat='server' heading="Discounts" />\r
+ <Rico:SimpleCol runat='server' heading="Net Sales" />\r
+ <Rico:SimpleCol runat='server' heading="Avg Discount" />\r
</Rico:SimpleGrid>\r
\r
</body>\r
</html>\r
-\r
click : null,
dblclick : null,
contextmenu : null,
- menuEvent : 'dblclick', // event that triggers menus - click, dblclick, contextmenu, or none (no menus)
- defaultWidth : -1, // if -1, then use unformatted column width
- scrollBarWidth : 19, // this is the value used in positioning calculations, it does not actually change the width of the scrollbar
- minScrollWidth : 100, // min scroll area width when width of frozen columns exceeds window width
+ menuEvent : null, // event that triggers menus - click, dblclick, contextmenu, or none (no menus)
+ defaultWidth : -1, // if -1, then use unformatted column width
+ scrollBarWidth : 19, // this is the value used in positioning calculations, it does not actually change the width of the scrollbar
+ minScrollWidth : 100, // min scroll area width when width of frozen columns exceeds window width
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'],
*/
createDivs: function() {
Rico.log("createDivs start");
- this.outerDiv = this.createDiv("outer");
+ this.outerDiv = this.createDiv("outer");
if (Rico.theme.gridContainer) Rico.addClass(this.outerDiv,Rico.theme.gridContainer);
if (this.outerDiv.firstChild && this.outerDiv.firstChild.tagName && this.outerDiv.firstChild.tagName.toUpperCase()=='TABLE') {
this.structTab=this.outerDiv.firstChild;
this.bookmark=document.getElementById(this.tableId+"_bookmark");
this.sizeDivs();
- var filterUIrow=this.buffer.options.canFilter ? this.options.FilterLocation : false;
- if (typeof(filterUIrow)=='number' && filterUIrow<0)
+ var filterUIrow=-1;
+ if (this.buffer.options.canFilter && this.options.AutoFilter)
filterUIrow=this.addHeadingRow('ricoLG_FilterRow');
this.createDataCells(this.options.visibleRows);
if (this.pageSize == 0) return;
this.scrollToRow(this.options.offset);
this.buffer.fetch(this.options.offset);
}
- if (typeof(filterUIrow)=='number')
+ if (filterUIrow >= 0)
this.createFilters(filterUIrow);
this.scrollEventFunc=Rico.eventHandle(this,'handleScroll');
this.wheelEventFunc=Rico.eventHandle(this,'handleWheel');
var theads=table.getElementsByTagName("thead");
if (theads.length == 1) {
Rico.log("createTables: using thead section, id="+this.tableId);
- if (this.options.PanelNamesOnTabHdr && this.options.panels) {
+ if (this.options.ColGroupsOnTabHdr && this.options.ColGroups) {
var r=theads[0].insertRow(0);
this.insertPanelNames(r, 0, this.options.frozenColumns, 'ricoFrozen');
this.insertPanelNames(r, this.options.frozenColumns, this.options.columnSpecs.length);
} else {
this.createHdr(0,0,this.options.frozenColumns);
this.createHdr(1,this.options.frozenColumns,this.options.columnSpecs.length);
- if (this.options.PanelNamesOnTabHdr && this.options.panels) {
+ if (this.options.ColGroupsOnTabHdr && this.options.ColGroups) {
this.insertPanelNames(this.thead[0].insertRow(0), 0, this.options.frozenColumns);
this.insertPanelNames(this.thead[1].insertRow(0), this.options.frozenColumns, this.options.columnSpecs.length);
}
r.className='ricoLG_hdg';
var lastIdx=-1, span, newCell=null, spanIdx=0;
for( var c=start; c < limit; c++ ) {
- if (lastIdx == this.options.columnSpecs[c].panelIdx) {
+ if (lastIdx == this.options.columnSpecs[c].ColGroupIdx) {
span++;
} else {
if (newCell) newCell.colSpan=span;
newCell = r.insertCell(-1);
if (cellClass) newCell.className=cellClass;
span=1;
- lastIdx=this.options.columnSpecs[c].panelIdx;
- newCell.innerHTML=this.options.panels[lastIdx];
+ lastIdx=this.options.columnSpecs[c].ColGroupIdx;
+ newCell.innerHTML=this.options.ColGroups[lastIdx];
}
}
if (newCell) newCell.colSpan=span;
createWindow: function() {
var self=this;
- return new Rico.Window('', {closeFunc: function() { self.makeFormInvisible(); }, overflow: this.options.panels ? 'hidden' : 'auto'});
+ return new Rico.Window('', {closeFunc: function() { self.makeFormInvisible(); }, overflow: this.options.ColGroups ? 'hidden' : 'auto'});
},
initPanelGroup: function() {
this.options.bgColor = Rico.Color.createColorFromBackground(this.form).toString();
}
this.formPopup.container.style.display='none';
- //this.options.panelHdrWidth=(Math.floor(wi / this.options.panels.length)-20)+'px';
this.formPanels=new Rico.TabbedPanel(this.panelGroup, this.options);
},
if (!fldSpec.EntryType) continue;
if (fldSpec.EntryType=='H') continue;
if (fldSpec.FormView && fldSpec.FormView=="hidden") continue;
- var panelIdx=fldSpec.panelIdx || 0;
+ var panelIdx=fldSpec.ColGroupIdx || 0;
if (panelIdx==i) {
hasFields=true;
break;
}
if (!hasFields) return null;
this.panelHdr[i] = document.createElement('li');
- this.panelHdr[i].innerHTML=this.options.panels[i];
+ this.panelHdr[i].innerHTML=this.options.ColGroups[i];
this.panelHdrs.appendChild(this.panelHdr[i]);
this.panelContent[i] = document.createElement('div');
this.panelContents.appendChild(this.panelContent[i]);
this.panelCnt=0;
this.panelHdr=[];
this.panelContent=[];
- if (this.options.panels) {
+ if (this.options.ColGroups) {
this.panelGroup = document.createElement('div');
this.panelGroup.className='tabPanelGroup';
this.panelHdrs = document.createElement('ul');
this.panelActualIdx=[];
parentDiv.appendChild(this.panelGroup);
if (this.grid.direction=='rtl') {
- for (i=this.options.panels.length-1; i>=0; i--) {
+ for (i=this.options.ColGroups.length-1; i>=0; i--) {
tables[i]=this.createPanel(i);
}
} else {
- for (i=0; i<this.options.panels.length; i++) {
+ for (i=0; i<this.options.ColGroups.length; i++) {
tables[i]=this.createPanel(i);
}
}
for (i=0; i<this.grid.columns.length; i++) {
fldSpec=this.grid.columns[i].format;
if (!fldSpec) continue;
- panelIdx=fldSpec.panelIdx || 0;
+ panelIdx=fldSpec.ColGroupIdx || 0;
if (tables[panelIdx]) this.appendFormField(this.grid.columns[i],tables[panelIdx]);
if (typeof fldSpec.pattern=='string') {
switch (fldSpec.pattern) {
validationMsg: function(elem,colnum,phraseId) {
var col=this.grid.columns[colnum];
- if (this.formPanels) this.formPanels.select(this.panelActualIdx[col.format.panelIdx]);
+ if (this.formPanels) this.formPanels.select(this.panelActualIdx[col.format.ColGroupIdx]);
var label=Rico.stripTags(col.formLabel.innerHTML).replace(/ /g,' ');
var msg=Rico.getPhraseById(phraseId," \"" + label + "\"");
Rico.log(' Validation error: '+msg);
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);
}
var i;
for (i=0; i<2; i++) {
Rico.log("simpleGridInit "+i);\r
- this.tabs[i]=document.getElementById(this.tableId+'_tab'+i);
+ this.tabs[i]=Rico.$(this.tableId+'_tab'+i);
if (!this.tabs[i]) return;
- this.hdrTabs[i]=document.getElementById(this.tableId+'_tab'+i+'h');
+ this.hdrTabs[i]=Rico.$(this.tableId+'_tab'+i+'h');
if (!this.hdrTabs[i]) return;
this.thead[i]=this.hdrTabs[i];
this.tbody[i]=this.tabs[i];
if(this.options.headingSort=="hover"){this.createHoverSet()
}this.bookmark=document.getElementById(this.tableId+"_bookmark");
this.sizeDivs();
-var a=this.buffer.options.canFilter?this.options.FilterLocation:false;
-if(typeof(a)=="number"&&a<0){a=this.addHeadingRow("ricoLG_FilterRow")
+var a=-1;
+if(this.buffer.options.canFilter&&this.options.AutoFilter){a=this.addHeadingRow("ricoLG_FilterRow")
}this.createDataCells(this.options.visibleRows);
if(this.pageSize==0){return
}this.buffer.registerGrid(this);
}if(this.options.canFilterDefault&&this.options.getQueryParms){this.checkForFilterParms()
}this.scrollToRow(this.options.offset);
this.buffer.fetch(this.options.offset)
-}if(typeof(a)=="number"){this.createFilters(a)
+}if(a>=0){this.createFilters(a)
}this.scrollEventFunc=Rico.eventHandle(this,"handleScroll");
this.wheelEventFunc=Rico.eventHandle(this,"handleWheel");
this.wheelEvent=(Rico.isIE||Rico.isOpera||Rico.isWebKit)?"mousewheel":"DOMMouseScroll";
if(!e){return false
}if(e.tagName.toLowerCase()=="table"){var a=e.getElementsByTagName("thead");
if(a.length==1){Rico.log("createTables: using thead section, id="+this.tableId);
-if(this.options.PanelNamesOnTabHdr&&this.options.panels){var d=a[0].insertRow(0);
+if(this.options.ColGroupsOnTabHdr&&this.options.ColGroups){var d=a[0].insertRow(0);
this.insertPanelNames(d,0,this.options.frozenColumns,"ricoFrozen");
this.insertPanelNames(d,this.options.frozenColumns,this.options.columnSpecs.length)
}g=a[0].rows
this.loadHdrSrc(g)
}else{this.createHdr(0,0,this.options.frozenColumns);
this.createHdr(1,this.options.frozenColumns,this.options.columnSpecs.length);
-if(this.options.PanelNamesOnTabHdr&&this.options.panels){this.insertPanelNames(this.thead[0].insertRow(0),0,this.options.frozenColumns);
+if(this.options.ColGroupsOnTabHdr&&this.options.ColGroups){this.insertPanelNames(this.thead[0].insertRow(0),0,this.options.frozenColumns);
this.insertPanelNames(this.thead[1].insertRow(0),this.options.frozenColumns,this.options.columnSpecs.length)
}for(b=0;
b<2;
var i=-1,j,e=null,g=0;
for(var h=b;
h<d;
-h++){if(i==this.options.columnSpecs[h].panelIdx){j++
+h++){if(i==this.options.columnSpecs[h].ColGroupIdx){j++
}else{if(e){e.colSpan=j
}e=a.insertCell(-1);
if(f){e.className=f
}j=1;
-i=this.options.columnSpecs[h].panelIdx;
-e.innerHTML=this.options.panels[i]
+i=this.options.columnSpecs[h].ColGroupIdx;
+e.innerHTML=this.options.ColGroups[i]
}}if(e){e.colSpan=j
}},createHdr:function(d,g,b){Rico.log("createHdr: i="+d+" start="+g+" limit="+b);
var a=this.thead[d].insertRow(-1);
});
this.exportmenu.addMenuItemId("gridmenuExportAll2SS",function(){f.printAllSQL("xl")
},f.totalRows<=n)
-}else{this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
-this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisible()
+}else{this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisible()
});
this.exportmenu.addMenuItemId("gridmenuExportAll2Web",function(){f.printAll()
},f.totalRows<=n)
Rico.runLater(50,this,"initPanelGroup")
}},createWindow:function(){var a=this;
return new Rico.Window("",{closeFunc:function(){a.makeFormInvisible()
-},overflow:this.options.panels?"hidden":"auto"})
+},overflow:this.options.ColGroups?"hidden":"auto"})
},initPanelGroup:function(){this.requestCount--;
Rico.log("initPanelGroup: "+this.requestCount);
if(this.requestCount>0){return
}if(!a.EntryType){continue
}if(a.EntryType=="H"){continue
}if(a.FormView&&a.FormView=="hidden"){continue
-}var d=a.panelIdx||0;
+}var d=a.ColGroupIdx||0;
if(d==c){e=true;
break
}}if(!e){return null
}this.panelHdr[c]=document.createElement("li");
-this.panelHdr[c].innerHTML=this.options.panels[c];
+this.panelHdr[c].innerHTML=this.options.ColGroups[c];
this.panelHdrs.appendChild(this.panelHdr[c]);
this.panelContent[c]=document.createElement("div");
this.panelContents.appendChild(this.panelContent[c]);
this.panelCnt=0;
this.panelHdr=[];
this.panelContent=[];
-if(this.options.panels){this.panelGroup=document.createElement("div");
+if(this.options.ColGroups){this.panelGroup=document.createElement("div");
this.panelGroup.className="tabPanelGroup";
this.panelHdrs=document.createElement("ul");
this.panelGroup.appendChild(this.panelHdrs);
this.panelGroup.appendChild(this.panelContents);
this.panelActualIdx=[];
e.appendChild(this.panelGroup);
-if(this.grid.direction=="rtl"){for(c=this.options.panels.length-1;
+if(this.grid.direction=="rtl"){for(c=this.options.ColGroups.length-1;
c>=0;
c--){b[c]=this.createPanel(c)
}}else{for(c=0;
-c<this.options.panels.length;
+c<this.options.ColGroups.length;
c++){b[c]=this.createPanel(c)
}}e.appendChild(this.panelGroup)
}else{f=document.createElement("div");
c<this.grid.columns.length;
c++){a=this.grid.columns[c].format;
if(!a){continue
-}d=a.panelIdx||0;
+}d=a.ColGroupIdx||0;
if(b[d]){this.appendFormField(this.grid.columns[c],b[d])
}if(typeof a.pattern=="string"){switch(a.pattern){case"email":a.regexp=/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/;
break;
}new Rico.ajaxRequest(this.options.updateURL,{parameters:d,method:"post",onComplete:this.responseHandler})
}this.menu.cancelmenu()
},validationMsg:function(d,c,e){var b=this.grid.columns[c];
-if(this.formPanels){this.formPanels.select(this.panelActualIdx[b.format.panelIdx])
+if(this.formPanels){this.formPanels.select(this.panelActualIdx[b.format.ColGroupIdx])
}var a=Rico.stripTags(b.formLabel.innerHTML).replace(/ /g," ");
var f=Rico.getPhraseById(e,' "'+a+'"');
Rico.log(" Validation error: "+f);