Вход Регистрация
Файл: ezEditTable/docs/doc.html
Строк: 1858
<?php
<!DOCTYPE HTML>
<
html>
<
head>
    <
title>ezEditTableenhance HTML tables easilyadvanced inline editingselection and keyboard navigation script by Max Guglielmi</title>
     <
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <
meta name="description" content="ezEditTable is an open source javascript code aimed at enhancing regular HTML tables by adding features such as inline editing components, advanced selection and keyboard navigation" />
    <
meta name="keywords" content="html table editing, html table inline cell editing, inline cell editor, row selection, script, javascript, max guglielmi" />
    <
meta name="robots" content="index,follow" />
    <
meta name="author" content="Max Guglielmi" />
    <
style type="text/css" media="screen, projection">
        @
import "http://edittable.free.fr/includes/common.css";
    </
style>
    
    <
script type="text/javascript" src="../ezEditTable.js"></script>
    <
link href="../ezEditTable.css" rel="stylesheet" type="text/css">
    
    <
style type="text/css" media="screen">
        
div#navmenu li a#lnk03{ 
            
color:#333; font-weight:bold;
            
border-top:2px solid #ff9900;
            
background:#fff;
        
}
    </
style>

</
head>
<
body>

<
div id="container">

    <
div id="banner">
             
    <
div id="navmenu">
        <
ul>
            <
li><a id="lnk01" href="index.html">Home</a></li>
            <
li><a id="lnk02" href="samples.html">Samples</a></li>
            <
li><a id="lnk03" href="doc.html">Documentation</a></li>
        </
ul>
    </
div>
    </
div>
    
    <!-- 
BEGIN CONTENT -->

    <
div id="content">
        
        <
div id="divsubmenu">
            <
ul class="submenu">
                <
li class="dir">
                    <
a id="co" href="./doc.html">Configuration Object <small>&#9660;</small></a>
                    
<ul>
                        <
li><a href="./doc.html#ez_common">General</a></li>
                        <
li><a href="./doc.html#ez_selection">Selection</a></li>
                        <
li><a href="./doc.html#ez_sel_events">Selection callback events</a></li>
                        <
li><a href="./doc.html#ez_editable">Editable</a></li>
                        <
li><a href="./doc.html#ez_cell_editors">Cell editors</a></li>
                        <
li><a href="./doc.html#ez_editable">Command buttons</a></li>
                        <
li><a href="./doc.html#ez_uploader">Uploader editor</a></li>
                        <
li><a href="./doc.html#ez_editable_events">Editable callback events</a></li>
                        <
li><a href="./doc.html#ez_actions">Actions</a></li>
                        <
li><a href="./doc.html#ez_actions_events">Actions callback events</a></li>
                        <
li><a href="./doc.html#ez_msg">Messages</a></li>
                    </
ul>
                </
li>
                <
li class="dir">
                    <
a id="cl" href="./doc_class.html">TF Class<small>&#9660;</small></a>
                    
<ul>

                        <
li><a href="./doc_class.html#ez_constructor">Constructor</a></li>
                        <
li><a href="./doc_methods.html#ez_methods">General public methods</a></li>
                        <
li><a href="./doc_methods.html#ez_selection_methods">Selection public methods</a></li>
                        <
li><a href="./doc_methods.html#ez_editable_methods">Editable public methods</a></li>
                        <
li><a href="./doc_properties.html#ez_properties">General public properties</a></li>
                        <
li><a href="./doc_properties.html#ez_selection_properties">Selection public properties</a></li>

                        <
li><a href="./doc_properties.html#ez_editable_properties">Editable public properties</a></li>
                    </
ul>
                </
li>
                <
li><a id="uf" href="./doc_utilities.html">Utility Functions</a></li>
            </
ul>
        </
div>
        
        <
h1 class="marginTop30">Documentation</h1>

        
        
    <
h2>Configuration Object</h2>
        
        
    <
p>You will find here all the properties of the configuration object ( var 
      
etConfig = { propertyvalue }) needed to configure the EditTable object:</p>
          
        <!--[if 
lt IE 8]>
            <
p>
               <
a href="#ez_common">General</a> | <a href="#ez_selection">Selection</a> | 
               <
a href="#ez_sel_events">Selection callback events</a> | <a href="#ez_editable">Editable</a> | 
               <
a href="#ez_cell_editors">Cell editors</a> | <a href="#ez_command_btns">Command buttons</a> | 
               <
a href="#ez_editable_events">Editable and cell editors callback events and delegates</a> | 
               <
a href="#ez_actions">Actions</a> | <a href="#ez_actions_events">Actions callback events</a> | 
               <
a href="#ez_msg">Messages</a
            </
p>
        <![endif]-->

        <
a name="ez_common" id="ez_common"></a
        
    <
h3>General</h3>
    <
table id="tblCommon" cellspacing="0" class="ezEditableTable">
      <
thead>

        <
tr
          <
th>Property</th>
          <
th>Type</th>
          <
th>Description</th>
          <
th>Remarks</th>
          <
th>Example</th>
        </
tr>

      </
thead>
      <
tbody>
        <
tr
          <
th>selection</th>
          <
td>boolean</td>
          <
td>enables disables selection model (default - true) </td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { selectionfalse }</code></td>

        </
tr>
        <
tr
          <
th>editable</th>
          <
td>boolean</td>
          <
td>enables disables inline cell editing(default - false) </td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { editabletrue }</code></td>

        </
tr>
        <
tr
          <
th>key_navigation</th>
          <
td>boolean</td>
          <
td>enables disables keyboard navigation (default - true)</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { key_navigationfalse }</code></td>

        </
tr>
        <
tr
          <
th>table_css</th>
          <
td>string</td>
          <
td>defines the css class of the table element (default - 'ezEditableTable')</td>
          <
td>Check out the ezEditTable.css stylesheet and edit the css classes 
            
for your project's needs</td>
          <td> <code>var etConfig = { table_css: "myclass" }</code></td>

        </tr>
        <tr> 
          <th>unselectable_css</th>
          <td> string</td>
          <td> defines the css class that makes the table text unselectable (default 
            - '
ezUnselectable')</td>
          <td>Older versions of IE do not support this css class, as an alternative 
            use unselectable=&quot;on&quot; to expect same result</td>

          <td> <code>var etConfig = { unselectable_css: "myclass" }</code></td>
        </tr>
        <tr> 
          <th>activity_indicator_css</th>
          <td> string</td>
          <td> defines the css class to be applied to the table in order to indicate 
            server activity </td>

          <td>&nbsp;</td>
          <td> <code>var etConfig = { activity_indicator_css: "myclass" }</code></td>
        </tr>
        <tr> 
          <th>on_server_activity_start</th>
          <td> function</td>
          <td> callback event function called before server activity starts (default: 
            null) </td>

          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current row to be processed server-side</li>
            </ul></td>
          <td> <code>var etConfig = { on_server_activity_start: function(o, row){ 
            alert('
Row data to be processed' + o.Selection.GetRowValues(row)); } }</code></td>

        </tr>
        <tr> 
          <th>on_server_activity_stop</th>
          <td> function </td>
          <td> callback event function called when server activity stopped (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>


            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current row to be processed server-side</li>
            </ul></td>
          <td><code>var etConfig = { on_server_activity_stop: function(o, row){ 
            alert('
Row data processed server-side' + o.Selection.GetRowValues(row)); 
            } }</code></td>
        </tr>
        <tr> 
          <th>base_path</th>

          <td>string</td>
          <td> defines the path to the script'
s directory (default: 'ezEditTable/')</td>
          <
td>This is used for the command editor icons' path</td>
          <td> <code>var etConfig = { base_path: "myDir/" }</code></td>
        </tr>
      </tbody>

    </table>
        <a href="javascript:window.scroll(0,0);">Top of page</a> 
        <hr/>
        
        <a name="ez_selection" id="ez_selection"></a> 
        
    <h3>Selection</h3>
    <table id="tblSelection" cellspacing="0" class="ezEditableTable" >
      <thead>
        <tr> 
          <th >Property</th>

          <th >Type</th>
          <th >Description</th>
          <th >Remarks</th>
          <th >Example</th>
        </tr>
      </thead>
      <tbody>

        <tr> 
          <th>selection_model</th>
          <td>string</td>
          <td> defines the selection model: &quot;single&quot; or &quot;multiple&quot; 
            (default: '
single') </td>

          <td>2 possible values: '
single' or 'multiple'</td>
          <td><code>var etConfig = { selection_model: '
multiple' }</code></td>
        </tr>
        <tr> 
          <th>default_selection</th>
          <td>string</td>
          <td>defines the selection type (default: '
row')</td>

          <td>3 possible values: '
row', 'cell' or 'both'</td>
          <td><code>var etConfig = { default_selection: '
both' }</code></td>
        </tr>
        <tr> 
          <th>key_selection</th>
          <td>boolean</td>
          <td>enables / disable multiple selection by using Ctrl and Shift keys 
            (default: true)</td>

          <td>select multiple rows by holding Ctrl or Shift key down, only if 
            selection model is '
multiple'</td>
          <td><code>var etConfig = { key_selection: false }</code></td>
        </tr>
        <tr> 
          <th>select_row_at_start</th>
          <td>boolean</td>
          <td>first row is selected at start if set true (default: false)</td>

          <td>&nbsp;</td>
          <td><code>var etConfig = { select_row_at_start: true }</code></td>
        </tr>
        <tr> 
          <th>row_index_at_start</th>
          <td>number</td>
          <td>defines which row has to be selected at start (default: this.startRow)</td>

          <td>this.startRow = numeric parameter passed to constructor:<br>
            var et = new EditTable('
myTableId', <strong>3</strong>, etConfig);</td>
          <td><code>var etConfig = { row_index_at_start: 3 }</code></td>
        </tr>
        <tr> 
          <th>scroll_into_view</th>

          <td>boolean</td>
          <td>If set true selected row scrolls into view; useful when row is selected 
            by using keyboard (default: false)</td>
          <td>&nbsp;</td>
          <td><code>var etConfig = { scroll_into_view: true }</code></td>
        </tr>
        <tr> 
          <th>active_row_css</th>

          <td>string</td>
          <td>defines css class for active row (default: '
ezActiveRow')</td>
          <td>&nbsp;</td>
          <td><code>var etConfig = { active_row_css: '
myClass' }</code></td>
        </tr>
        <tr class="newBg"> 
          <th>selected_row_css</th>

          <td>string</td>
          <td>defines css class for selected rows (default: '
ezSelectedRow')</td>
          <td><p>only if '
multiple' selection model is enabled</p>
            </td>
          <td><code>var etConfig = { selected_row_css: '
myClass' }</code></td>
        </tr>
        <tr> 
          <th>active_cell_css</th>

          <td>string</td>
          <td> defines css class for active cell (default: '
ezActiveCell')</td>
          <td>only if '
cell' or 'both' selection type is enabled</td>
          <td><code>var etConfig = { active_cell_css: '
myClass' };</code></td>
        </tr>
        <tr> 
          <th>nb_rows_per_page</th>

          <td>number</td>
          <td> defines number of rows to jump when PgDown or PgUp keys are pressed 
            (default: 10) </td>
          <td><p>specify a huge number to jump straight to 1st or last row (1000)</p>
            </td>
          <td><code>var etConfig = { nb_rows_per_page: 1000 }</code></td>
        </tr>

      </tbody>
    </table>
    <a href="javascript:window.scroll(0,0);">Top of page</a> 
    <hr/>
    
    <a name="ez_sel_events" id="ez_sel_events"></a>         
    <h3>Selection callback events</h3>
    <table id="tblSelEvents" cellspacing="0" class="ezEditableTable" >
      <thead>
        <tr> 
          <th>Property</th>

          <th>Type</th>
          <th>Description</th>
          <th>Remarks</th>
          <th>Example</th>
        </tr>
      </thead>
      <tbody>

        <tr> 
          <th>on_selection_initialized</th>
          <td>function</td>
          <td>callback event function called when Selection object is initialised 
            (default: null) </td>
          <td><p>1 parameter is passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>

            </ul></td>
          <td><code>var etConfig = { on_selection_initialized: function(o){ alert(o.id+' 
            
Selection object is initialised!'); } }</code></td>
        </tr>
        <tr> 
          <th>on_before_selected_row</th>
          <td>function</td>
          <td>callback event function called before a row is selected (default: 
            null) )</td>

          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current row to be selected</li>
            </ul></td>
          <td><code>var etConfig = { on_before_selected_row: function(o, row){ 
            alert('
Row index' + row.rowIndex); } }</code></td>
        </tr>

        <tr> 
          <th>on_after_selected_row</th>
          <td>function</td>
          <td>callback event function called after a row is selected (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>

              <li>row is the current selected row</li>
            </ul></td>
          <td><code>var etConfig = { on_after_selected_row: function(o, row){ 
            alert('
Row index' + row.rowIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_before_selected_cell</th>
          <td>function</td>

          <td>callback event function called before a cell is selected (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>cell is the current cell to be selected</li>
            </ul></td>
          <td><code>var etConfig = { on_before_selected_cell: function(o, cell){ 
            alert('
Cell index' + cell.cellIndex); } }</code></td>

        </tr>
        <tr> 
          <th>on_after_selected_cell</th>
          <td>function</td>
          <td>callback event function called (default: null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>

              <li>o is the current EditTable object</li>
              <li>cell is the current selected cell</li>
            </ul></td>
          <td><code>var etConfig = { on_after_selected_cell: function(o, cell){ 
            alert('
Cell index' + cell.cellIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_before_deselected_row</th>

          <td>function</td>
          <td>callback event function called before a row is deselected (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current row to be deselected</li>

            </ul></td>
          <td><code>var etConfig = { on_before_deselected_row: function(o, row){ 
            alert('
Row index' + row.rowIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_after_deselected_row</th>
          <td>function</td>
          <td>callback event function called after a row is deselected (default: 
            null) </td>

          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current deselected row</li>
            </ul></td>
          <td><code> var etConfig = { on_after_deselected_row: function(o, row){ 
            alert('
Row index' + row.rowIndex); } }</code></td>

        </tr>
        <tr class="newBg"> 
          <th>on_before_deselected_cell</th>
          <td>function</td>
          <td>callback event function called before a cell is deselected (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>

              <li>o is the current EditTable object</li>
              <li>cell is the current cell to be deselected</li>
            </ul></td>
          <td><code> var etConfig = { on_before_deselected_cell: function(o, cell){ 
            alert('
Cell index' + cell.cellIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_after_deselected_cell</th>

          <td>function</td>
          <td>callback event function called after a cell is deselected (default: 
            null) </td>
          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>cell is the current deselected cell</li>

            </ul></td>
          <td><code>var etConfig = { on_after_deselected_cell: function(o, cell){ 
            alert('
Cell index' + cell.cellIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_validate_row</th>
          <td>function</td>
          <td>callback event function called after a row is validated by pressing enter key or on double-click (default: 
            null) </td>

          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>row is the current validated row</li>
            </ul>
            <p>Note the <b>editable</b> property needs to be set to <b>false</b></p>

          </td>
          <td><code>var etConfig = { on_validate_row: function(o, row){ 
            alert('
Row index' + row.rowIndex); } }</code></td>
        </tr>
        <tr> 
          <th>on_validate_cell</th>
          <td>function</td>
          <td>callback event function called after a cell is validated by pressing enter key or on double-click (default: 
            null) </td>

          <td><p>2 parameters are passed to the function:</p>
            <ul>
              <li>o is the current EditTable object</li>
              <li>cell is the current validated cell</li>
            </ul>
            <p>Note the <b>editable</b> property needs to be set to <b>false</b></p>

          </td>
          <td><code>var etConfig = { on_validate_cell: function(o, cell){ 
            alert('
Cell index' + cell.cellIndex); } }</code></td>
        </tr>
      </tbody>
    </table>
    <a href="javascript:window.scroll(0,0);">Top of page</a> 
    <hr/>
    
   <a name="ez_editable" id="ez_editable"></a>

    <h3>Editable</h3>
        
    <table id="tblEditable" cellspacing="0" class="ezEditableTable" >
      <thead>
        <tr> 
          <th width="193" >Property</th>
          <th width="52" >Type</th>
          <th width="239" >Description</th>

          <th width="154" >Remarks</th>
          <th width="185" >Example</th>
        </tr>
      </thead>
      <tbody>
        <tr> 
          <th>editor_model</th>
          <td>string</td>

          <td>defines the editor model (default: '
cell')</td>
          <td>2 possible values: '
cell' or 'row'</td>
          <td><code>var etConfig = { editor_model: '
row' }</code></td>
        </tr>
        <tr> 
          <th height="178">open_editor_action</th>
          <td>string</td>

          <td>defines which mouse action opens the inline editing feature (default: 
            '
dblclick') </td>
          <td>2 possible values: '
dblclick', 'click'</td>
          <td><code>var etConfig = { open_editor_action: '
click' }</code></td>
        </tr>
        <tr> 
          <th>ajax <sup>new</sup></th>
          <td>boolean</td>
          <td>enables AJAX requests (default: true if jQuery is detected)</td>
          <td>it is enabled if jQuery is detected and the <code>ajax</code> property is 
              not explicitly set <code>false</code></td>
          <td><code>var etConfig = { editable: true, ajax: false }</code></td>
        </tr>
        <tr>
          <th>cell_editors</th>
          <td>array</td>
          <td>array defining the editor configuration for each column (default: 
            []) </td>
          <td>the number of editors must be equal to the number of columns. Refer 
            to <a href="#ez_cell_editors">Cell editors properties</a> for details 
            about editors' 
configuration</td>
          <
td><p><code>var etConfig = { cell_editors: [<br>
              { 
type'select' },<br>
              { 
type'textarea' },<br>
              { 
type'input' },<br>
              { 
type'uploader' },<br>
              { 
type'none' }, <br>
              { 
type'command' }<br>
              ] }</
code></p></td>
        </
tr>
        <
tr>
          <
th>input_editor_css</th>

          <
td>string</td>
          <
td>defines the css class for 'input' type editors (default: 'ezInputEditor')</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { input_editor_css'myClass' };</code></td>
        </
tr>
        <
tr>
          <
th>textarea_editor_css</th>

          <
td>string</td>
          <
td>defines the css class for 'textarea' type editors (default: 'ezTextAreaEditor')</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { textarea_editor_css'myClass' };</code></td>
        </
tr>
        <
tr>
          <
th>select_editor_css</th>
          <
td>string</td>
          <
td>defines the css class for 'input' type editors (default: 'ezSelectEditor')</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { select_editor_css'myClass' };</code></td>
        </
tr>
        <
tr>
          <
th>command_editor_css</th>

          <
td>string</td>
          <
td>css class applied to command editor buttons container (default: 
            
'ezCommandEditor')</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { command_editor_css'myClass' };</code></td>
        </
tr>
        <
tr>
          <
th>modified_cell_css</th>
          <
td>string</td>
          <
td>css class applied to modified cells (default: 'ezModifiedCell')</td>
          <
td>this css class shows the green small triangle in the left-upper 
            corner of the cell
</td>
          <
td><code>var etConfig = { modified_cell_css'myClass' };</code></td>
        </
tr>
        <
tr>
          <
th>auto_save</th>
          <
td>boolean</td>
          <
td>saves automatically pending changes upon selection change</td>
          <
td><code>editable</codeproperty needs to be activated (default: true if editable is on)</td>
          <
td><code>var etConfig = { auto_savefalse };</code></td>
        </
tr>
        <
tr>
          <
th>auto_save_model</th>
          <
td>string</td>
          <
td>determines when modified and/or added data is savedupon row or cell selection change (default: 'row')</td>
          <
td>2 possible values 'row' or 'cell'</td>
          <
td><code>var etConfig = { auto_save_model'cell' };</code></td>
        </
tr>
        <
tr>
          <
th>auto_save_type</th>
          <
td>string</td>
          <
td>defines if only insertions or updates, or both are saved automatically  (default: 'both')</td>
          <
td>3 possible values 'insert''update' or 'both'</td>
          <
td><code>var etConfig = { auto_save_type'update' };</code></td>
        </
tr>
        <
tr>
          <
th>editable_on_keystroke <sup>new</sup></th>
          <
td>boolean</td>
          <
td>makes the inline cell editor appear upon keystroke (default: false)</td>
          <
td>only if edition is enabled and <code>editorModel</codeis set to <code>'cell'</code> and
              <
code>selectionModel</codeto <code>'single'</code></td>
          <
td><code>var etConfig = { editabletrueeditable_on_keystroketrue };</code></td>
        </
tr>
        <
tr>
          <
th>new_row_prefix</th>
          <
td>string</td>
          <
td>defines the prefix for new added row ids  (default: 'tr')</td>
          <
td>prefix should match the prefix assigned to already existing rows</td>
          <
td><code>var etConfig = { new_row_prefix'row' };</code></td>
        </
tr>
        <
tr>
          <
th>form_submit_interval</th>
          <
td>number</td>
          <
td>defines the interval in ms separating rows data submissions (default: 50)</td>
          <
td>by default the script submits a single form for each modified rowDepending on ISPs network
              security policies
multiple submissions to same page are blocked by the server.
            
This interval can be useful to fine tune the form submissions when those server restrictions apply.</td>
          <
td><code>var etConfig = { form_submit_interval750 };</code></td>
        </
tr>
        <
tr>
          <
th>new_row_pos <sup>new</sup></th>
          <
td>string or number</td>
          <
td>defines the row position of a newly created row (default: 'top')</td>
          <
td>2 possible values as a string'top' or 'bottom', and as an integer:
              
any number &gt;= and &lt;= total number of rows. If the supplied numeric 
              value exceeds the total number of rows then the script fallback to 
default
              
value 'top'</td>
          <
td><code>var etConfig = { new_row_pos'bottom' };</code></td>
        </
tr>
      </
tbody>
    </
table>

    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>
        
    <
a name="ez_cell_editors" id="ez_cell_editors"></a>     
    <
h3>Cell editors</h3>
    <
table id="tblCellEditors" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>
        <
tr
          <
th>type</th>
          <
td>string</td>
          <
td>sets the editor type (default: 'input')</td>
          <
td>these are the editor types'none''input''textarea''select'
            
'multiple''boolean''command''custom''uploader'</td>
          <
td><code> var etConfig = { cell_editors: [<br>
            { 
type'select' },<br>
            { 
type'textarea' },<br>
            { 
type'input' },<br>
            { 
type'uploader' },<br>
            { 
type'none' }, <br>
            { 
type'command' }<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>css</th>
          <
td>string</td>
          <
td>defines a css class for the editor (default: null)</td>
          <
td>&nbsp;</td>
          <
td><code> var etConfig = { cell_editors: [<br>
            { 
type'select'css:'myClass' },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>attributes</th>
          <
td>array</td>
          <
tddefines the additional attributes for the editor's DOM element 
            (default: null)</td>
          <td>useful for specifying the max length of characters for input and 
            textarea types</td>
          <td><code>var etConfig = { cell_editors: [<br>

            { type: '
input', attributes:[['maxLength',5],['title','5 chars max']] 
            },...<br>
            ]}</code></td>
        </tr>
        <tr> 
          <th>style</th>
          <td>string</td>
          <td>sets the inline style for the editor'
s DOM element (default: null)</td>

          <
td>&nbsp;</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'textarea'style'background-color:#fff;' },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>custom_slc_options</th>
          <
td>array</td>
          <
td>defines the options of a 'select' editor type (default: null)</td>
          <
td>this property applies only to 'select' and 'multiple' editors 
            
type'multiple'custom_slc_options:['a','b','c'], sort_slc_options
            
'string'values_separator', ' },</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'select'custom_slc_options:['a','b','c'] },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>custom_slc_values</th>
          <
td>array</td>
          <
td>defines the options values of a 'select' editor type (default: null)</td>
          <
td>this property applies only to 'select' and 'multiple' editors 
            
type'multiple'custom_slc_options:['a','b','c'], custom_slc_values:['1','2','3'], sort_slc_options
            
'string'values_separator', ' },</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'select'custom_slc_options:['a','b','c'], custom_slc_values:['1','2','3'] },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>sort_slc_options</th>
          <
td>string</td>
          <
td>sorts the custom options (default: null)</td>
          <
td><p>this property applies only to 'select' and 'multiple' editors
              
3 possible values:</p>
            <
ul>

              <
li>'string'sorts string values </li>
              <
li>'numasc'sorts numeric values in ascending manner</li>
              <
li>'numdesc'sorts numeric values in descending manner</li>
            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'select'custom_slc_options:['a','b','c'], sort_slc_options
            
'string' },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>values_separator</th>
          <
td>string</td>
          <
td>defines the value separator for 'multiple' type editors (default: 
            
', ') </td>
          <
td>this property applies only to 'multiple' editors</td>

          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'multiple'custom_slc_options:['a','b','c'], sort_slc_options
            
'string'values_separator'; ' },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>allow_empty_value</th>
          <
td>boolean</td>

          <
td>defines the columns accepting empty values (default: false)</td>
          <
td></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'input'allow_empty_value:true },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>target</th>
          <
td>string</td>
          <
td>defines the custom editor target element id (default: 'null')</td>
          <
td>this property applies only to 'custom' editors</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'custom'target'datePick' },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>command_column_index</th>
          <
td>number</td>
          <
td>tells the script in which column command buttons have to be generated 
            
(default: this.nbCells-1)</td>
          <
td>this property applies only to 'command' editors. Default value is 
            the last column of the table
</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index},...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>buttons</th>
          <
td>object</td>
          <
td><p>this literal object is the configuration object of the command 
              buttons generated in column 
(default: {})</p></td>
          <
td>this property applies only to 'command' editorsRefer to <a href="#ez_command_btns">Command 
            buttons properties
</a> for details about 'command' editor buttons 
            configuration
</td>
          <
td><p><code>var etConfig = { cell_editors: [<br>
              { 
type'command'command_column_index4,<br>
              
buttons:{ <br>
              
enable: ['update''insert''delete''submit''cancel'], <br>
              
'update': { title:'Edit row' },<br>
              
'insert': { title:'Add row'scrollIntoViewfalse },<br>
              
'delete': { title:'Delete row' },<br>
              
'submit': { text:'Save'title:'Save' },<br>
              
'cancel': { text:'Cancel'title:'Cancel' } }<br>
              },...<
br>

              ]}</
code></p></td>
        </
tr>
      </
tbody>
    </
table>
    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>
            
    <
a name="ez_command_btns" id="ez_command_btns"></a>         
    <
h3>Command buttons</h3>

    <
table id="tblCommandBtns" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>
        <
tr
          <
th>enable</th>
          <
td>array</td>
          <
td>enables the command buttons to be generated (default: ['update'
            
'insert''delete''submit''cancel'])</td>

          <
td>command buttons types'update''insert''delete''submit''cancel'
            
To disable a particular button remove it from the array</td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>
            
buttons:{ <br>
            
enable: ['update''submit''cancel'], <br>
            
'update': { title:'Edit row' },<br>

            
'submit': { text:'Save'title:'Save' },<br>
            
'cancel': { text:'Cancel'title:'Cancel' } }<br> },...<br>
            ]}</
code></td>
        </
tr>
        <
tr
          <
th>update</th>

          <
td>object</td>
          <
td>configuration object of the 'update' button (default: {})</td>
          <
td><p>Below a list of the properties for the 'update' button:</p>
            <
ul>
              <
li>'text'text of the button (default: '')</li>
              <
li>'icon'icon image html (default: '&lt;img src=&quot;'+this.basePath+'themes/icn_edit.gif&quot; 
                alt=&quot;&quot; /&gt;'
)</li>

              <
li>'title'tooltip for the button (default: 'Edit record')</li>
              <
li>'css'additional css class (default: null)</li>
              <
li>'style'inline style element (default: null)</li>
            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>

            
buttons:{ <br>
            
enable: ['update'], <br>
            
'update': { text:'Edit'title:'Edit row'css:'myClass'}</code><code>},...</code><code><br>
            ]}</
code></td>
        </
tr>
        <
tr class="newBg"
          <
th>insert</th>
          <
td>object</td>
          <
tdconfiguration object of the 'insert' button (default: {})</td>
          <
td><p>Below a list of the properties for the 'insert' button:</p>
            <
ul>
              <
li>'text'text of the button (default: '')</li>
              <
li>'icon'icon image html (default: '&lt;img src=&quot;'+this.basePath+'themes/icn_edit.gif&quot; 
                alt=&quot;&quot; /&gt;'
)</li>

              <
li>'title'tooltip for the button (default: 'Create record')</li>
              <
li>'css'additional css class (default: null)</li>
              <
li>'style'inline style element (default: null)</li>
              <
li>'scrollIntoView'scrolls into view inserted row (default: false)</li>
            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>
            
buttons:{ <br>
            
enable: ['insert'], <br>
            
'insert': { text:'Add'title:'Add row'css:'myClass'}</code><code>},...</code><code><br>
            ]}</
code></td>
        </
tr>

        <
tr class="newBg"
          <
th>delete</th>
          <
td>object</td>
          <
td>configuration object of the 'delete' button (default: {})</td>
          <
td><p>Below a list of the properties for the 'delete' button:</p>
            <
ul>
              <
li>'text'text of the button (default: '')</li>

              <
li>'icon'icon image html (default: '&lt;img src=&quot;'+this.basePath+'themes/icn_edit.gif&quot; 
                alt=&quot;&quot; /&gt;'
)</li>
              <
li>'title'tooltip for the button (default: 'Delete record')</li>
              <
li>'css'additional css class (default: null)</li>
              <
li>'style'inline style element (default: null)</li>

            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>
            
buttons:{ <br>
            
enable: ['delete'], <br>
            
'delete': { text:'Remove'title:'Remove row'css:'myClass'}</code><code>},...</code><code><br>

            ]}</
code></td>
        </
tr>
        <
tr class="newBg"
          <
th>submit</th>
          <
td>object</td>
          <
td>configuration object of the 'submit' button (default: {})</td>
          <
td><p>Below a list of the properties for the 'submit' button:</p>
            <
ul>
              <
li>'text'text of the button (default: 'Submit')</li>
              <
li>'icon'icon image html (default: '&lt;img src=&quot;'+this.basePath+'themes/icn_edit.gif&quot; 
                alt=&quot;&quot; /&gt;'
)</li>
              <
li>'title'tooltip for the button (default: 'Submit record')</li>

              <
li>'css'additional css class (default: null)</li>
              <
li>'style'inline style element (default: null)</li>
            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>
            
buttons:{ <br>

            
enable: ['submit'], <br>
            
'submit': { text:'Save'title:'Save row'css:'myClass'}</code><code>},...</code><code><br>
            ]}</
code></td>
        </
tr>
        <
tr class="newBg"
          <
th>cancel</th>
          <
td>object</td>

          <
td>configuration object of the 'cancel' button (default: {})</td>
          <
td><p>Below a list of the properties for the 'cancel' button:</p>
            <
ul>
              <
li>'text'text of the button (default: 'Cancel')</li>
              <
li>'icon'icon image html (default: '&lt;img src=&quot;'+this.basePath+'themes/icn_edit.gif&quot; 
                alt=&quot;&quot; /&gt;'
)</li>

              <
li>'title'tooltip for the button (default: 'Cancel')</li>
              <
li>'css'additional css class (default: null)</li>
              <
li>'style'inline style element (default: null)</li>
            </
ul></td>
          <
td><code>var etConfig = { cell_editors: [<br>
            { 
type'command'command_column_index4,<br>

            
buttons:{ <br>
            
enable: ['cancel'], <br>
            
'cancel': { css:'myClass'}</code><code>},...</code><code><br>
            ]}</
code></td>
        </
tr>
      </
tbody>

    </
table>
    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>

    <
a name="ez_uploader" id="ez_uploader"></a>         
    <
h3>Uploader editor</h3>
    <
table id="tblUploader" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>
          <
tr
          <
th>uploader</th>
          <
td>object</td>
          <
td>defines the uploader editor settings (default: {})</td>
          <
td>&nbsp;</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { uri'php/uploadFile.php'path'images/uploads/'max_file_size'51200'show_linkfalse }
                },... 
            ]
</
code></td>
        </
tr>
        <
tr
          <
th>uri</th>
          <
td>string</td>
          <
td>defines the URL of the resource performing the upload operation (default: null)</td>
          <
td>&nbsp;</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { uri'php/uploadFile.php' }
                },... 
            ]
</
code></td>
        </
tr>
        <
tr
          <
th>path</th>
          <
td>string</td>
          <
td>defines the path to the uploads folder repository (default: null)</td>
          <
td>&nbsp;</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { path'images/uploads/' }
                },... 
            ]
</
code></td>
        </
tr>
        <
tr
          <
th>show_upload</th>
          <
td>boolean</td>
          <
td>shows or hides uploaded file (default: true)</td>
          <
td>&nbsp;</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { show_uploadfalse }
                },... 
            ]
</
code></td>
        </
tr>
        <
tr
          <
th>sql_field</th>
          <
td>string</td>
          <
td>defines the name of the SQL field name storing upload filename (default: 'IMAGENAME')</td>
          <
td>optional depending on how the upload server-side operation is implemented
              
On the script's website, the name of the SQL field storing the filename is rerquired by the PHP resource. 
            This does not mean that it is a good practice, it is just for demoing purposes.</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { sql_field: '
FILENAME' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>record_id_column_index</th>
          <td>number</td>
          <td>tells the script which is the index of the column containing the record id (default: null)</td>
          <td>optional depending on how the id of a record is used in the HTML table.
              If this property is defined, the script will use it in order to retrieve the
            record id of working row. Otherwise, it will extract it from the id of the
            working row, by default '
tr'+Id.
          </td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { record_id_column_index: 0 }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>show_link</th>
          <td>boolean</td>
          <td>Uploaded file appears as a link in the uploader box and in the cell if set true (default: true)</td>
          <td>&nbsp;</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { show_link: false }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>link_css</th>
          <td>string</td>
          <td>defines the css class for the upload link (default: '')</td>
          <td>&nbsp;</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { show_link: true, link_css: '
myClass' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>loader_image</th>
          <td>string</td>
          <td>defines the path of the loader image displayed during the upload operation (default: this.basePath + '
themes/img_loader.gif')</td>
          <td>&nbsp;</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { loader_image: '
myFolder/loader.gif' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>ok_image</th>
          <td>string</td>
          <td>sets the path of the image used to notify users that cell contains an uploaded file (default: this.basePath + '
themes/img_loader.gif')</td>
          <td>If <code>show_upload</code> is active and <code>show_link</code> property is set false this property applies.</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { ok_image: '
myFolder/ok.gif' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>max_file_size</th>
          <td>number</td>
          <td>sets the maximum file size allowed, default value is 100Kb (default: 102400)</td>
          <td>Optional depending on the server-side implementation. This value is passed to the server in the online script'
s demos.</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { max_file_size51200 }
                },... 
            ]
</
code></td>
        </
tr>
        <
tr
          <
th>valid_extensions</th>
          <
td>string</td>
          <
td>sets a list of comma separated file extensions to pass to the server logic (default: 'jpg, jpeg, gif, png')</td>
          <
td>Optional depending on the server-side implementationThis value is passed to the server in the online script's demos.</td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { valid_extensions: '
doc,docx,pdf,rtf' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>css</th>
          <td>string</td>
          <td>defines the css class applied to the uploader container element (default: '
ezUploaderEditor')</td>
          <td></td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { css: '
myClass' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>output_css</th>
          <td>string</td>
          <td>defines the css class applied to the uploader output messages container (default: '
ezUploaderEditorOutput')</td>
          <td></td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { output_css: '
myClass' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>display_css</th>
          <td>string</td>
          <td>defines the css class applied to the image displayer container (default: '
ezUploaderEditorOutput')</td>
          <td></td>
          <td><code>...cell_editors:[
                { 
                    type: '
uploader', 
                    uploader: { output_css: '
myClass' }
                },... 
            ]
</code></td>
        </tr>
        <tr> 
          <th>javascript_code_success</th>
          <td>string</td>
          <td>defines javascript code to be injected by the server after a successfull upload operation 
          (default: '
&lt;script&gt;window.parent["{1}"].SetUploadSuccess(true); window.parent["{1}"].SetUploadName("{0}");' +
            '
window.parent["{1}"].ShowUpload();&lt;/script&gt;')</td>
          <td>Optional depending on server-side implementation.    This value is passed to the server in the online script'
s demos.</td>
          <
td><code>...cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { javascript_code_success'&lt;script&gt;alert('Upload name: {0}');&lt;/script&gt;' }
                },... 
            ]
</
code></td>
        </
tr>    
      </
tbody>
    </
table>

    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>
        
    <
a name="ez_editable_events" id="ez_editable_events"></a
    <
h3>Editable and cell editors callback events and delegates</h3>
        
    <
table id="tblEditEvents" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>

        <
tr
          <
th>on_editable_initialized</th>
          <
td>function</td>
          <
td>callback event function called when Editable object is initialised 
            
(default: null)</td>
          <
td><p>1 parameter is passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>

            </
ul></td>
          <
td><code> var etConfig = { on_editable_initialized: function(o){ alert(o.id
            
' Editable object is initialised!'); } }</code></td>
        </
tr>
        <
tr
          <
th>on_before_open_editor</th>
          <
td>function</td>
          <
td>callback event function called before a cell editor is opened 
              
(default: null)
            </
td>

          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>
              <
li>editor is the current opened editor</li>
            </
ul></td>
          <
td><code> var etConfig = { on_before_open_editor: function(ocell
            
editor){ cell.style.backgroundColor 'pink'; } }</code></td>

        </
tr>
        <
tr
          <
th>on_after_open_editor</th>
          <
td>function</td>
          <
tdcallback event function called after a cell editor is opened (default: 
            
null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>

              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>
              <
li>editor is the current opened editor</li>
            </
ul></td>
          <
td><code>var etConfig = { on_after_open_editor: function(ocelleditor){ 
            
cell.style.backgroundColor 'transparent'; } }</code></td>
        </
tr>
        <
tr>

          <
th>on_before_close_editor</th>
          <
td>function</td>
          <
td>callback event function called before a cell editor is closed (default: 
            
null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>

              <
li>cell is the current cell</li>
              <
li>editor is the current opened editor</li>
            </
ul></td>
          <
td><code>var etConfig = { on_before_close_editor: function(ocell
            
editor){ cell.style.backgroundColor 'pink'; } }</code></td>
        </
tr>
        <
tr>
          <
th>on_after_close_editor</th>

          <
td>function</td>
          <
td>callback event function called after a cell editor is closed (default: 
            
null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>

              <
li>editor is the current opened editor</li>
            </
ul></td>
          <
td><code>var etConfig = { on_after_close_editor: function(ocell
            
editor){ cell.style.backgroundColor 'transparent'; } }</code></td>
        </
tr>
        <
tr>
          <
th>set_custom_editor_value</th>
          <
td>function</td>

          <
td>delegate function called to set 'custom' editor value (default: 
            
null)</td>
          <
td><p>4 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened editor</li>
              <
li>colIndex is the column index</li>

              <
li>val is the value to set in the custom editor</li>
            </
ul></td>
          <
td><code>var etConfig = { set_custom_editor_value: function(oeditor
            
colIndexval){ alert('Value to set in custom editor:' val); } }</code></td>
        </
tr>
        <
tr>
          <
th>get_custom_editor_value</th>
          <
td>function</td>

          <
td>delegate function called to get 'custom' editor value (default: 
            
null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened editor</li>
              <
li>colIndex is the column index</li>

            </
ul></td>
          <
td><code>var etConfig = { get_custom_editor_value: function(oeditor
            
colIndex){ alert('Call function to retrieve custom editor value for 
            column '
+colIndex); } }</code></td>
        </
tr>
        <
tr>
          <
th>set_cell_modified_value</th>
          <
td>function</td>
          <
td>delegate function called to write modified value in cell (default: 
            
null)</td>

          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>
              <
li>val is the value to write in the cell</li>
            </
ul></td>
          <
td><code>var etConfig = { set_cell_modified_value: function(ocell
            
val){ alert('This value has to be written in the cell: ' val); } 
            }</
code></td>

        </
tr>
        <
tr>
          <
th>validate_modified_value</th>
          <
td>function</td>
          <
td>delegate function called to validate modified value to be written 
            in cell 
(default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>

              <
li>o is the current EditTable object</li>
              <
licolIndex is the column index</li>
              <
licellVal is the cell value</li>
              <
li>edtVal is the editor value</li>
              <
li>cell is the current cell</li>

              <
li>editor is the current editor</li>
            </
ul>
            <
p>The validation delegate must return a boolean</p></td>
          <
td><code>var etConfig = { validate_modified_value: function(ocolIndex
            
cellValedtValcelleditor){ alert('Validation function returns 
            a boolean'
); } }</code></td>
        </
tr>
        <
tr>
          <
th>open_custom_editor</th>

          <
td>function</td>
          <
td>delegate function called to open 'custom' editor (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>

              <
li>editor is the current opened editor</li>
            </
ul></td>
          <
td><code>var etConfig = { open_custom_editor: function(ocelleditor){ 
            
alert('Custom editor for column '+cell.cellIndex+' is being opened!'); 
            } }</
code></td>
        </
tr>
        <
tr
          <
th>close_custom_editor</th>
          <
td>function</td>

          <
td>delegate function called to close 'custom' editor (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>cell is the current cell</li>
              <
li>editor is the current opened editor</li>

            </
ul></td>
          <
td><code>var etConfig = { close_custom_editor: function(ocelleditor){ 
            
alert('Custom editor for column '+cell.cellIndex+' is closed!'); } 
            }</
code></td>
        </
tr>
        <
tr
          <
th>show_upload</th>
          <
td>function</td>
          <
td>delegate function called by uploader editor to display uploaded file (default: null)</td>
          <
td><p>4 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>divUplDisplay is the container element containing the upload</li>
              <
li>uploadName is the filename of the uploaded file</li>
              <
li>path is the upload path</li>
            </
ul></td>
          <
td><code>var etConfig = { 
                  
cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { 
                        
show_upload: function(odivUplDisplayuploadNamepath){ 
                            
divUplDisplay.style.display '';
                            
divUplDisplay.innerHTML uploadName;        
                        }
                    }
                }]  
            }</
code></td>
        </
tr
        <
tr
          <
th>on_before_open</th>
          <
td>function</td>
          <
td>callback called before uploader editor is opened (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened uploader editor</li>
              <
li>cell is the current cell</li>
            </
ul></td>
              <
td><code>var etConfig = { 
                  
cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { 
                        
on_before_open: function(oeditorcell){ 
                            
alert('uploader is going to be opened');        
                        }
                    }
                }]
            }</
code></td>
        </
tr>
        <
tr
          <
th>on_after_open</th>
          <
td>function</td>
          <
td>callback called after uploader editor is opened (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened uploader editor</li>
              <
li>cell is the current cell</li>
            </
ul></td>
              <
td><code>var etConfig = { 
                  
cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { 
                        
on_after_open: function(oeditorcell){ 
                            
alert('uploader is opened now');        
                        }
                    }
                }]
            }</
code></td>
        </
tr>
        <
tr
          <
th>on_before_close</th>
          <
td>function</td>
          <
td>callback called before uploader editor is closed (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened uploader editor</li>
              <
li>cell is the current cell</li>
            </
ul></td>
              <
td><code>var etConfig = { 
                  
cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { 
                        
on_before_close: function(oeditorcell){ 
                            
alert('uploader is going to be closed');        
                        }
                    }
                }]
            }</
code></td>
        </
tr>
        <
tr
          <
th>on_after_close</th>
          <
td>function</td>
          <
td>callback called after uploader editor is closed (default: null)</td>
          <
td><p>3 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>editor is the current opened uploader editor</li>
              <
li>cell is the current cell</li>
            </
ul></td>
              <
td><code>var etConfig = { 
                  
cell_editors:[
                { 
                    
type'uploader'
                    
uploader: { 
                        
on_after_close: function(oeditorcell){ 
                            
alert('uploader is closed now');        
                        }
                    }
                }]
            }</
code></td>
        </
tr>
      </
tbody>
    </
table>
    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>
        
    <
a name="ez_actions" id="ez_actions"></a>     
    <
h3>Actions</h3>

        
    <
table id="tblActions" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>

          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>
        <
tr
          <
th>actions</th>
          <
td>object</td>
          <
td>server actions configuration object (default: {})&nbsp; </td>

          <
td>&nbsp;</td>
          <
td><p><code> var etConfig = {<br>
              
actions:{<br>
              
'update': { <br>
              
uri'updateRow.php'submit_method'form'form_method'POST'
              <
br>
              
param_names: ['iso''name''printablename''iso3''code'] },<br>

              
'insert': { <br>
              
uri'insertRow.php'submit_method'form'form_method'POST'
              <
br>
              
param_names: ['iso''name''printablename''iso3''code'] },<br>
              
'delete': { <br>
              
uri'script.delete.php'submit_method'script'bulk_delete
              
true }<br>
              }<
br>

              </
code><code>}</code></p>
            </
td>
        </
tr>
        <
tr
          <
th>update</th>
          <
tdobject</td>
          <
td>'update' action configuration object (default: {})</td>

          <
td><p>Below the list of properties for the 'update' actions:</p>
            <
ul>
              <
li>uriserver-side page</li>
              <
li>form_method2 possible values 'form' or 'script'</li>
              <
li>submit_method'POST' or 'GET' requests, if form_method is script 
                only GET requests
</li>
              <
li>param_namescollection of parameters expected by the server-side 
                page 
(uri property)</li>

            </
ul></td>
          <
td><code> var etConfig = {<br>
            
actions:{<br>
            
'update': { <br>
            
uri'updateRow.php'submit_method'form'form_method'POST'
            <
br>
            
param_names: ['iso''name''printablename''iso3''code'] } }<br>

            </
code><code>}</code></td>
        </
tr>
        <
tr
          <
th>insert</th>
          <
td>object</td>
          <
td'insert' action configuration object (default: {})</td>
          <
td><p>Below the list of properties for the 'insert' actions:</p>

            <
ul>
              <
li>uriserver-side page</li>
              <
li>form_method2 possible values 'form' or 'script'</li>
              <
li>submit_method'POST' or 'GET' requests, if form_method is script 
                only GET requests
</li>
              <
li>param_namescollection of parameters expected by the server-side 
                page 
(uri property)</li>
              <
li>default_recordcollection of values to add when a row is added 
                to table 
(insert command button)</li>

            </
ul></td>
          <
td><p><code>var etConfig = {<br>
              
actions:{<br>
              
'insert': { <br>
              
uri'insertRow.php'submit_method'form'form_method'POST'
              <
br>
              
param_names: ['iso''name''printablename''iso3''code'],<br>

              
default_record: ['''New country''New country''XXX''0']</code><code>} 
              }<
br>
              </
code><code>}</code></p>
            </
td>
        </
tr>
        <
tr
          <
th>delete</th>
          <
td>object</td>

          <
td>'delete' action configuration object &nbsp;(default: {})</td>
          <
td><p>Below the list of properties for the 'update' actions:</p>
            <
ul>
              <
li>uriserver-side page</li>
              <
li>form_method2 possible values 'form' or 'script'</li>
              <
li>submit_method'POST' or 'GET' requests, if form_method is script 
                only GET requests
</li>

              <
li>param_namescollection of parameters expected by the server-side 
                page 
(uri property)</li>
              <
li>bulk_deleteenables multiple rows deletion operations</li>
            </
ul></td>
          <
td><code>var etConfig = {<br>
            
actions:{<br>
            
'delete': { <br>

            
uri'script.delete.php'submit_method'script'bulk_deletetrue 
            
} } </code><code>}</code></td>
        </
tr>
      </
tbody>
    </
table>
        
    <
a name="ez_actions_events" id="ez_actions_events"></a>     
    <
h3>Actions callback events</h3>
        
    <
table id="tblActionsEvents" cellspacing="0" class="ezEditableTable" >
      <
thead>

        <
tr
          <
th >Property</th>
          <
th >Type</th>
          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>

      </
thead>
      <
tbody>
        <
tr
          <
th>on_update_submit</th>
          <
td>function</td>
          <
td>delegate function called for submitting modified data to server 
            
(default: null) </td>
          <
td><p>2 parameters are passed to the function:</p>

            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>treated rows: array of modified rows objects</li>
            </
ul></td>
          <
td><p><code> <br>
              var 
etConfig = {<br>
              </
code><code>actions:{<br>

              
'update': { <br>
              
uri'updateRow.php'submit_method'form'form_method'POST'
              <
br>
              
on_update_submit: function(otreatedRows){ alert(treatedRows); 
              }<
br>
              } } } }</
code></p>
            </
td>
        </
tr>
        <
tr
          <
th>on_insert_submit</th>

          <
td> function</td>
          <
tddelegate function called for submitting inserted data to server 
            
(default: null) </td>
          <
td><p>2 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>treated rows: array of inserted rows objects</li>

            </
ul></td>
          <
td><code> var etConfig = { <br>
            
actions:{<br>
            
'insert': { <br>
            
uri'insertRow.php'submit_method'form'form_method'POST'
            <
br>
            
on_insert_submit: function(otreatedRows){ alert(treatedRows); }<br>

            } } } }</
code></td>
        </
tr>
        <
tr
          <
th>on_delete_submit</th>
          <
td>function</td>
          <
tddelegate function called for submitting deleted data to server 
            
(default: null) </td>
          <
td><p>2 parameters are passed to the function:</p>

            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>treated rows: array of deleted rows objects</li>
            </
ul></td>
          <
td> <code><br>
            var 
etConfig = { <br>
            
actions:{<br>

            
'delete': { <br>
            
uri'script.delete.php'submit_method'script'bulk_deletefalse,<br>
            
on_delete_submit: function(otreatedRows){ alert(treatedRows); }<br>
            } } } }</
code></td>
        </
tr>
        <
tr
          <
th>on_before_submit</th>

          <
td> function</td>
          <
tdcallback function called before data is sent to server (default: 
            
null)</td>
          <
td><p>2 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>treated rows: array of modified rows objects</li>

            </
ul></td>
          <
td> <p><code>var etConfig = { <br>
              
actions:{<br>
              
'update': { <br>
              
uri'updateRow.php'submit_method'form'form_method'POST',<br>
              
on_before_submit: function(omodifiedRows){ alert('before update'); 
              }<
br>

              },<
br>
              
'insert': { <br>
              
uri'insertRow.php'submit_method'form'form_method'POST'
              <
br>
              
on_before_submit: function(omodifiedRows){ alert('before insert'); 
              }<
br>
              },<
br>
              
'delete': { <br>

              
uri'script.delete.php'submit_method'script'bulk_delete
              
false,<br>
              
on_before_submit: function(omodifiedRows){ alert('before delete'); 
              } } </
code><code>} }</code></p>
            </
td>
        </
tr>
        <
tr
          <
th>on_after_submit</th>
          <
td> function</td>

          <
tdcallback function called after data is sent to server (default: 
            
null)</td>
          <
td><p>2 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>treated rows: array of modified rows objects</li>
            </
ul> </td>

          <
td> <code>var etConfig = { <br>
            
actions:{<br>
            
'update': { <br>
            
uri'updateRow.php'submit_method'form'form_method'POST',<br>
            
on_after_submit: function(omodifiedRows){ alert('before update'); 
            }<
br>
            },<
br>

            
'insert': { <br>
            
uri'insertRow.php'submit_method'form'form_method'POST'
            <
br>
            
on_after_submit: function(omodifiedRows){ alert('before insert'); 
            }<
br>
            },<
br>
            
'delete': { <br>
            
uri'script.delete.php'submit_method'script'bulk_deletefalse,<br>

            
on_after_submit: function(omodifiedRows){ alert('before delete'); 
            } } </
code><code>}</code></td>
        </
tr>
        <
tr
          <
th>on_submit_error</th>
          <
td> function</td>
          <
tdcallback function called when error occurs when data is sent to 
            server 
(default: null)</td>

          <
td><p>2 parameters are passed to the function:</p>
            <
ul>
              <
li>o is the current EditTable object</li>
              <
li>e is the error object</li>
              <
li>desc is the error object description</li>
            </
ul> </td>

          <
td>
              <
pre>
var 
etConfig = {
        
actions: {
            
'update': {
                
uri'updateRow.php',
                
submit_method'form',
                
form_method'POST',
                
on_submit_error: function (oedesc) {
                    
alert('An error occured');
                }
            },
            
'insert': {

                
uri'insertRow.php',
                
submit_method'form',
                
form_method'POST',

                
on_submit_error: function (oedesc) {
                    
alert('An error occured');
                }
            },
            
'delete': {
                
uri'script.delete.php',
                
submit_method'script',
                
bulk_deletefalse,
                
on_submit_error: function (oedesc) {
                    
alert('An error occured');
                }
            }
        }
              </
pre>
          </
td>
        </
tr>
        <
tr
          <
th>check_response_sanity <sup>new</sup></th>
          <
td>function</td>
          <
td>callback function called when the AJAX request returns a response object 
              usually in JSON format
This delegate checks the sanity of the response object and
              
returns a boolean (default: null)</td>

          <
td>
              <
p>This callback is invoked only when <code>ajax</codeis on.</p>
              <
p>1 parameter is passed to the function:</p>
            <
ul>
              <
li>dataresponse objectusually in JSON format</li>
            </
ul
          </
td>

          <
td>
              <
pre>
actions: {
    
'update': {
        
uri'php/json.update.record.php',
        
form_method'POST',
        
param_names: [
            
'id''name''email''startdate''salary'
        
],
        
check_response_sanity: function (data) {
            return (
data && data.hasOwnProperty('result') &&
                
data.result.hasOwnProperty('success'));
        }
    },
    
'insert': {
        
uri'php/json.insert.record.php',
        
form_method'POST',
        
param_names: [
            
'id''name''email''startdate''salary'
        
],
        
default_record: [
            
'''Employee name...'
            
'employee@email.com''2011-01-01'
            
'0.00'
        
],
        
check_response_sanity: function (data) {
            return (
data && data.hasOwnProperty('result') &&
                
data.result.hasOwnProperty('success'));
        }
    },
    
'delete': {
        
uri'php/json.delete.record.php',
        
form_method'POST',
        
bulk_deletefalse,
        
param_names: ['id'],
        
check_response_sanity: function (data) {
            return (
data && data.hasOwnProperty('result') &&
                
data.result.hasOwnProperty('success'));
        }
    }
};
              </
pre>
          </
td>
        </
tr>        

        <
tr
          <
th>process_response <sup>new</sup></th>
          <
td>function</td>
          <
td>callback function called when the AJAX request returns a response object 
              usually in JSON format
This delegate gives the possibility to add custom 
              processing of the response object 
(default: null)</td>

          <
td>
              <
p>This callback is invoked only when <code>ajax</codeis on.</p>
              <
p>1 parameter is passed to the function:</p>
            <
ul>
              <
li>dataresponse objectusually in JSON format</li>
            </
ul
          </
td>

          <
td>
              <
pre>
actions: {
    
'update': {
        
uri'php/json.update.record.php',
        
form_method'POST',
        
param_names: [
            
'id''name''email''startdate''salary'
        
],
        
process_response: function (data) {
            
alert(data.result.description);
        }
    },
    
'insert': {
        
uri'php/json.insert.record.php',
        
form_method'POST',
        
param_names: [
            
'id''name''email''startdate''salary'
        
],
        
default_record: [
            
'''Employee name...'
            
'employee@email.com''2011-01-01'
            
'0.00'
        
],
        
process_response: function (data) {
            
alert(data.result.description 
                
' ('data.result.id +')');
        }
    },
    
'delete': {
        
uri'php/json.delete.record.php',
        
form_method'POST',
        
bulk_deletefalse,
        
param_names: ['id'],
        
process_response: function (data) {
            
alert(data.result.description 
                
' ('data.result.id +')');
        }
    }
};
              </
pre>
          </
td>
        </
tr>
      </
tbody>
    </
table>
        
    <
a name="ez_msg" id="ez_msg"></a
    <
h3>Messages</h3>
        
    <
table id="tblMsg" cellspacing="0" class="ezEditableTable" >
      <
thead>
        <
tr
          <
th >Property</th>
          <
th >Type</th>

          <
th >Description</th>
          <
th >Remarks</th>
          <
th >Example</th>
        </
tr>
      </
thead>
      <
tbody>
        <
tr
          <
th>msg_submit_ok</th>

          <
td>string</td>
          <
td>text displayed when data was successfully sent to the server (default: 
            
'Modified rows were successfully submitted to server!')&nbsp;</td>
          <
td><p>&nbsp;</p></td>
          <
td><code> var etConfig = { msg_submit_ok'Data saved successfully!'}</code></td>
        </
tr>
        <
tr
          <
th>msg_confirm_delete_selected_rows</th>

          <
td>string</td>
          <
td>text displayed to ask confirmation for deleting operation (default: 
            
''Do you want to delete the selected row(s)?'')&nbsp;</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { msg_confirm_delete_selected_rows'Are you 
            sure you want to delete selected rows?' 
}</code></td>
        </
tr>
        <
tr
          <
th>msg_error_occured</th>


          <
td>string</td>
          <
td>text displayed when an error occurs in general (default: 'An error 
            occured!'
)&nbsp;</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { msg_error_occured'Error!' }</code></td>
        </
tr>
        <
tr
          <
th>msg_submit_unsuccessful</th>

          <
td>string</td>
          <
td>text displayed when an error occurs when data is sent to server 
            
(default: 'Modified rows could not be saved correctly!')&nbsp;</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { msg_submit_unsuccessful'Data could not 
            be saved correctly!' 
}</code></td>
        </
tr>
        <
tr
          <
th>undefined_submit_url</th>

          <
td>string</td>
          <
td>text displayed when data cannot be sent to server because URI is 
            missing 
(default: 'Modified rows could not be saved! Submit URL is 
            not defined'
)&nbsp;</td>
          <
td>&nbsp;</td>
          <
td><code>var etConfig = { msg_filter'Please provide a URL to which 
            submit data!' 
}</code></td>
        </
tr>
      </
tbody>
    </
table>

    <
a href="javascript:window.scroll(0,0);">Top of page</a
    <
hr/>

        
    </
div>
    <!-- 
END CONTENT -->
    
    <
div id="footer"></div>
    
</
div>


</
body>
</
html>
?>
Онлайн: 2
Реклама