src/cm/media/js/lib/yui/yui_3.10.3/docs/datatable/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>DataTable</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>DataTable</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><style type="text/css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    td code {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        white-space: nowrap;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        background: #fcfbfa;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        border: 1px solid #d0d5ec;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        padding: 0 3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    .yui3-datatable table {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        width: auto;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    .yui3-datatable td, .yui3-datatable th {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        border: 0 none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    .yui3-datatable-col-Module {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        white-space: nowrap;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    .yui3-skin-sam .yui3-datatable-message-content {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        background: #fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
        border-bottom: 0 none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    .notice {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
        background: #faf3d1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        border: 1px solid #eac9a9;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
        -moz-border-radius: 3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        -webkit-border-radius: 3px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        border-radius: px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
        padding: 0 1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        -moz-box-shadow: 0 0 5px #ccc8b3;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
        -webkit-box-shadow: 0 0 5px #ccc8b3;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
        box-shadow: 0 0 5px #ccc8b3;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        margin-bottom: 1em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    .notice h2 {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        margin-top: .6em;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
<div class="intro component">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        The DataTable widget is responsible for rendering columnar data into a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
        highly customizable and fully accessible HTML table.  The core
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        functionality of DataTable is to visualize structured data as a table.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
        A variety of class extensions can then be used to add features to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        table such as sorting and scrolling.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
To include the source files for DataTable and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
YUI().use(&#x27;datatable&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    &#x2F;&#x2F; DataTable is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
<div class="notice">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    <h2 id="migration-intro">Upgrading from version 3.4.1 or older?</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        DataTable was refactored for 3.5.0.  Some APIs were changed in backward
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        incompatible ways.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        Read the <a href="migration.html">3.5.0 Migration Guide</a> for tips to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        avoid unpleasant surprises.  If you still run into issues, please
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        <a href="../../../projects/yui3/newticket/">file a ticket</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
        If you are unable to upgrade due to unresolvable issues, you can use the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
        <a href="../datatable-deprecated/index.html"><code>datatable-deprecated</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
        module suite, which is equivalent to the 3.4.1 implementation.  But be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        aware that these modules will be removed in a future version of YUI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
<h2 id="using">DataTable Basics</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    A basic DataTable is made of columns and rows. Define the columns you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    want to display in your DataTable with the <code>columns</code> attribute. Rows are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    created for you based on the data you provide to the <code>data</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    Under the hood, the DataTable class uses a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    <a href="../model-list/index.html">ModelList</a> instance to manage the row
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    data properties.  Read the <a href="#data">Table Data Configuration</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    section below for details about how to load, configure, and work with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    table data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
<pre class="code prettyprint">&#x2F;&#x2F; Columns must match data object property names
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
    { id: &quot;ga-3475&quot;, name: &quot;gadget&quot;,   price: &quot;$6.99&quot;, cost: &quot;$5.99&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    { id: &quot;sp-9980&quot;, name: &quot;sprocket&quot;, price: &quot;$3.75&quot;, cost: &quot;$3.25&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    { id: &quot;wi-0650&quot;, name: &quot;widget&quot;,   price: &quot;$4.25&quot;, cost: &quot;$3.75&quot; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    columns: [&quot;id&quot;, &quot;name&quot;, &quot;price&quot;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    data: data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    &#x2F;&#x2F; Optionally configure your table with a caption
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    caption: &quot;My first DataTable!&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    &#x2F;&#x2F; and&#x2F;or a summary (table attribute)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    summary: &quot;Example DataTable showing basic instantiation configuration&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
table.render(&quot;#example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
<div id="basic-example" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
YUI({ filter: 'raw' }).use('datatable-base', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    // Columns must match data object property names
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        { id: "ga-3475", name: "gadget",   price: "$6.99", cost: "$5.99" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
        { id: "sp-9980", name: "sprocket", price: "$3.75", cost: "$3.25" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        { id: "wi-0650", name: "widget",   price: "$4.25", cost: "$3.75" }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        columns: ["id", "name", "price"],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
        data: data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
        caption: "My first DataTable!",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        summary: "Example DataTable showing basic instantiation configuration"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    table.render("#basic-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
<h2 id="columns">Column Configuration</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
    The <code>columns</code> attribute takes an array of field names that correspond to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    property names in the <code>data</code> objects.  These field names are called "keys".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    As long as these keys exist in your data, DataTable will display the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    values in the table.  By default, the key is also used as the label of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    column header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    Use objects instead of key strings to customize how the cells in a column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    display.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
<pre class="code prettyprint">&#x2F;&#x2F; Columns must match data object property names
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    { id: &quot;ga-3475&quot;, name: &quot;gadget&quot;,   price: &quot;$6.99&quot;, cost: &quot;$5.99&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
    { id: &quot;sp-9980&quot;, name: &quot;sprocket&quot;, price: &quot;$3.75&quot;, cost: &quot;$3.25&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    { id: &quot;wi-0650&quot;, name: &quot;widget&quot;,   &#x2F;* missing *&#x2F;   cost: &quot;$3.75&quot; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    columns: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        &quot;id&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        { key: &quot;name&quot;, label: &quot;part name&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        { key: &quot;price&quot;, allowHTML: true, emptyCellValue: &quot;&lt;em&gt;(not set)&lt;&#x2F;em&gt;&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        &quot;cost&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    data: data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
table.render(&quot;#example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
<div id="column-example1" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
YUI().use('datatable-base', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    // Columns must match data object property names
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        { id: "ga-3475", name: "gadget",   price: "$6.99", cost: "$5.99" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
        { id: "sp-9980", name: "sprocket", price: "$3.75", cost: "$3.25" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        { id: "wi-0650", name: "widget",                   cost: "$3.75" }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        columns: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
            "id",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
            { key: "name", label: "part name" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
            { key: "price", allowHTML: true, emptyCellValue: "<em>(not set)</em>" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
            "cost"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        data: data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    table.render("#column-example1");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    Some column configurations affect the table headers and others affect the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    data cells.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    Use the <code>key</code> property to reference the associated data field when
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    configuring columns with objects.  Other supported configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    properties are listed in <a href="#column-config">Appendix A</a> below.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
<h3 id="nested">Stacked Column Headers</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    Use the <code>children</code> column configuration to create multiple rows of column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
<pre class="code prettyprint">var columns = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    &#x27;username&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        &#x2F;&#x2F; Important: Parent columns do NOT get a key...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
        &#x2F;&#x2F; but DO get a label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        label: &quot;Access&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        &#x2F;&#x2F; Pass an array of column configurations (strings or objects) as children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        children: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
            &#x27;read&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
            &#x27;write&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    { username: &quot;root&quot;, read: true, write: true },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    { username: &quot;spilgrim&quot;, read: true, write: false },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
    { username: &quot;fizzgig&quot;, read: false, write: false }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    columns: columns,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    data   : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
}).render(&quot;#example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
<div id="nested-example" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
YUI().use('datatable-base', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    { username: "root", read: true, write: true },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
    { username: "spilgrim", read: true, write: false },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    { username: "fizzgig", read: false, write: false }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    columns: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        'username',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
            // Important: Parent columns do NOT get a key...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
            // but DO get a label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
            label: "Access",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
            // Pass an array of column configurations (strings or objects) as children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
            children: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
                'read',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
                'write'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
            ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    data   : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
}).render("#nested-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    <code>children</code> takes an array of column configurations, just like the <code>columns</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    attribute itself. The columns defined in the <code>children</code> property will have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    header cells rendered below the parent column's header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    Columns that have <code>children</code> don't relate directly to the data cells in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    table rows, so they <strong>should not</strong> have a <code>key</code> configured.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    They should, however, include a <code>label</code> to provide the header's content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
<h3 id="formatters">Formatting Cell Data</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
    Customizing the content of the cells in your table is done using column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    configurations.  The most common formatting-related column configurations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
    are:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
        <code>allowHTML</code> - set this to <code>true</code> if your cell data, <code>emptyCellValue</code>, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
        <code>formatter</code> outputs HTML.  By default, cell data is HTML escaped for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
        security.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
        <code>emptyCellValue</code> - string to populate cells where no data (empty
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
        string, <code>undefined</code>, or <code>null</code>) is available in a record.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
        <code>formatter</code> - string or function used to translate the raw record data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        for each cell in a given column into a format better suited to display.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        <code>nodeFormatter</code> - function used to customize the DOM structure of a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        cell, its row, or its surrounding elements.  Use with caution.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
    When the <code>formatter</code> configuration setting contains a string it will be assumed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    to be the key into the hash of formatting functions at <code>Y.DataTable.BodyView.Formatters</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    If any such function is found, it will be used, otherwise, the string will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    presumed to be a template which may contain placeholders for data enclosed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    in curly braces.   The <code>{value}</code> placeholder would use the value destined for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
    the current cell.  The values of other fields in the record corresponding
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
    to the current row can be shown by providing their name enclosed in curly braces.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
    These other fields
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
    don't need to have column definitions of their own, they will simply be read
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
    from the underlying Model instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
    The <code>Y.DataTable.BodyView.Formatters</code> is empty for the developers to provide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    their own formatting functions.  A basic set is provided in module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
    <code>datatable-formatters</code> that has to be explicitly loaded.  Some of these
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    named formatters accept extra configuration settings in the column definition,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
    as described in their
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.BodyView.Formatters.html">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
        API docs</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    <code>formatter</code> functions are expected to return the string content to populate each
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    cell in that column, and <code>nodeFormatter</code>s are provided with the cell Nodes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    and expected to populate them using the Node API.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    For best performance, <strong><a href="#formatter-vs-nodeformatter">avoid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    <code>nodeFormatter</code>s unless absolutely necessary</a></strong>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
<pre class="code prettyprint">var columns = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
        key: &#x27;item&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        formatter: &#x27;&lt;a href=&quot;#{value}&quot;&gt;{value}&lt;&#x2F;a&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        allowHTML: true &#x2F;&#x2F; Must be set or the html will be escaped
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        key: &#x27;cost&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
        formatter: &#x27;${value}&#x27; &#x2F;&#x2F; formatter template string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        key: &#x27;price&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
            if (o.value &gt; 3) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
                o.className += &#x27;expensive&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
            return &#x27;$&#x27; + o.value.toFixed(2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        label: &#x27;profit&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
        nodeFormatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
            var profit = o.data.price - o.data.cost,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
                prefix = &#x27;$&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
                row;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
            if (profit &lt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
                prefix = &#x27;-&#x27; + prefix;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
                profit = Math.abs(profit);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
                row = o.cell.ancestor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
                o.cell.addClass(&#x27;negative&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
                &#x2F;&#x2F; Assign a rowspan to the first cell and add a new row
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
                &#x2F;&#x2F; below this one to span the last three columns
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
                row.one(&#x27;td&#x27;).setAttribute(&#x27;rowspan&#x27;, 2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
                row.insert(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
                    &#x27;&lt;tr class=&quot;auth&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
                        &#x27;&lt;button class=&quot;ok&quot;&gt;authorize&lt;&#x2F;button&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
                        &#x27;&lt;button class=&quot;stop&quot;&gt;discontinue&lt;&#x2F;button&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
                    &#x27;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
                    &#x27;after&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
            o.cell.set(&#x27;text&#x27;, prefix + profit.toFixed(2));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
];</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
<div id="formatter-example" class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    <style scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
        .yui3-datatable .yui3-datatable-data .expensive {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
            background-color: #ffe;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
        .yui3-skin-sam .yui3-datatable-data .auth td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
            border-bottom: 1px dashed #cbcbcb;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
        .negative {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
            color: #700;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
            font-weight: 700;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
        tr.auth td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
            text-align: right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
            background-color: #fff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
            border-top: 1px dashed #cbcbcb;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
            border-left: 1px solid #cbcbcb;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
            padding-right: 5px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
    </style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
YUI().use('datatable-base', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
    var columns = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
            key: 'item',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
            formatter: '<a href="#{value}">{value}</a>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
            allowHTML: true // Must be set or the html will be escaped
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
            key: 'cost',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
            formatter: '${value}' // formatter template string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
            key: 'price',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
            formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
                if (o.value > 10) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
                    o.className += 'expensive';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
                return '$' + o.value.toFixed(2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
            label: 'profit',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
            nodeFormatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
                var profit = o.data.price - o.data.cost,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
                    prefix = '$',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
                    row;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
                if (profit < 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
                    prefix = '-' + prefix;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
                    profit = Math.abs(profit);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
                    row = o.cell.ancestor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
                    o.cell.addClass('negative');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
                    row.one('td').setAttribute('rowspan', 2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
                    row.insert(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
                        '<tr class="auth"><td colspan="3">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
                            '<button class="ok">authorize</button>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
                            '<button class="stop">discontinue</button>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
                        '</td></tr>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
                        'after');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
                o.cell.setHTML(prefix + profit.toFixed(2));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
    var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
        { item: "widget",   cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
        { item: "gadget",   cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
        { item: "sprocket", cost: 4.08, price: 3.75 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
        { item: "nut",      cost: 0.01, price: 0.25 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
        columns: columns,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
        data   : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
    }).render("#formatter-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
    The parameters passed to <code>formatter</code> functions and <code>nodeFormatter</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
    functions are described in <a href="#formatter-props">Appendix B</a> and <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
    href="#nodeformatter-props">Appendix C</a>, respectively. Also look for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
    what can be passed in to the columns in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
    <a href="#column-config">Appendix A</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
    <strong>Note</strong>: It's highly recommended to keep the data in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
    underlying <code>data</code> ModelList as pure data, free from presentational
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
    concerns.  For example, use real numbers, not numeric strings, and store
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
    link urls and labels either in separate data fields or in a single data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    field, but as separate properties of a value object.  This allows the data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
    to be used for calculations such as sorting or averaging.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
<h4 id="formatter-function">Setting content with <code>formatter</code> functions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
    Set the cell content with column <code>formatter</code>s by returning the desired
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    content string from the function.  Alternately, just update <code>o.value</code> with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
    the new value in the object passed as an argument to the <code>formatter</code>.  When
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
    updating <code>o.value</code> <em>do not include a return statement</em>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
    <code>formatters</code> are very powerful because not only do they have access to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
    record's value for that column's field, but they also receive the rest of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
    the record's data, the record Model instance itself, and the column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
    configuration object.  This allows you to include any extra configurations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
    in your column configuration that might be useful to customizing how cells
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
    in the column are rendered.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
<pre class="code prettyprint">function currency(o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
    return Y.DataType.Number.format(o.value, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
        prefix            : o.column.currencySymbol     || &#x27;$&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
        decimalPlaces     : o.column.decimalPlaces      || 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
        decimalSeparator  : o.column.decimalSeparator   || &#x27;.&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
        thousandsSeparator: o.column.thousandsSeparator || &#x27;,&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
var cols = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
    { key: &quot;price&quot;, formatter: currency, decimalPlaces: 3 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
    ...</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
    If such a formatter will be used regularly, it is best to store it in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
    <code>Y.DataTable.BodyView.Formatters</code> hash. The formatter can later be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
    by its name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
    Named formatters are structured slightly differently in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
    order to improve performance:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
<pre class="code prettyprint">Y.DataTable.BodyView.Formatters.currency = function (col) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
    &#x2F;&#x2F; This is done just once per rendering cycle:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    var fn = Y.DataType.Number.format,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        format = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
            prefix            : col.currencySymbol     || &#x27;$&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
            decimalPlaces     : col.decimalPlaces      || 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
            decimalSeparator  : col.decimalSeparator   || &#x27;.&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
            thousandsSeparator: col.thousandsSeparator || &#x27;,&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
    return function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
        &#x2F;&#x2F; This is done once per row:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
        return fn(o.value, format);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
    The function stored in the <code>Formatters</code> table is not the formatter function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
    itself, instead, it returns the formatting function.  The outer function is called just
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
    once per rendering cycle and does any preliminary setup usually based on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    column configuration which it receives as its only argument, storing any
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
    information in local variables.  The returned formatting function is then
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
    run once per row accessing all the setup information via closure.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
    An optional <code>datatable-formatters</code> module provides
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
    a collection of such formatters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
    See the <a href="../api/classes/DataTable.BodyView.Formatters.html">API docs</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
    for more information on them.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
    See <a href="#formatter-props">Appendix B</a> for a list of all properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
    passed to <code>formatter</code> functions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
<h4 id="nodeformatters">Setting content with <code>nodeFormatter</code> functions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
    Unlike <code>formatters</code> which can effectively default to the normal rendering
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    logic by leaving <code>o.value</code> unchanged, <code>nodeFormatters</code> must assign content
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
    to the cells themselves.  The cell's initial classes will be set up, but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
    that's it.  Everything else is your responsibility.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
    <strong><code>nodeFormatter</code>s should return <code>false</code></strong>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
    <a href="formatter-vs-nodeformatter">See below</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
    While there are <a href="#formatter-vs-nodeformatter">few scenarios that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
    require <code>nodeFormatter</code>s</a>, they do have the benefits of having the Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
    API for constructing more complex DOM subtrees and the ability to access
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
    all nodes in the <code>&lt;tbody&gt;</code>. This means they can reference, and even modify,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
    cells in other rows.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
    Like <code>formatters</code>, <code>nodeFormatters</code> are provided with the data field value,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
    the record data, the record Model instance, and the column configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
    object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
    See <a href="#nodeformatter-props">Appendix C</a> for a list of all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
    properties passed to <code>nodeFormatter</code> functions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
<h4 id="formatter-vs-nodeformatter">Why <code>formatter</code> and <code>nodeFormatter</code>?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
    For good rendering performance and memory management, DataTable creates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    table content by assembling <code>innerHTML</code> strings from templates, with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
    <code>{placeholder}</code> tokens replaced with your data.  However, this means that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
    the Nodes don't exist yet when a column's <code>formatter</code>s are applied.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
    To minimize the need to create Nodes for each cell, the default rendering
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
    logic supports the addition of cell classes as well as row classes via
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
    <code>formatter</code> functions.  Event subscriptions should be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
    <a href="http://yuilibrary.com/yui/docs/event/delegation.html">delegated</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
    from the DataTable instance itself using the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.html#method_delegate"><code>delegate()</code> method</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
    On the rare occasion that you <em>must</em> use Nodes to supply the cell
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
    data, DataTable allows a second pass over the generated DOM elements once
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
    the initial string concatenation has been completed and the full HTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
    content created.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
    It is important to note that <code>nodeFormatters</code> will necessarily create a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
    Node instance for each cell in that column, which will increase the memory
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
    footprint of your application.  If the Node instance wrappers around the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
    DOM elements don't need to be maintained beyond the life of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
    <code>nodeFormatter</code>, return <code>false</code> to remove them from the internal object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
    cache.  <strong>This will not remove the rendered DOM, but it will remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
    event subscriptions made on those Nodes</strong>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
    In general, <code>nodeFormatter</code>s should only be used if absolutely necessary,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
    and should <em>always return <code>false</code></em>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
<h4 id="formatters-vs-empty">Formatters vs. <code>emptyCellValue</code></h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
    The <code>emptyCellValue</code> configuration is useful to provide fallback content in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
    the case of missing or empty column data, but it interacts with each type of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
    formatter differently.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
    String formatters will only be applied if the field data for that cell is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
    not <code>undefined</code>.  This allows the <code>emptyCellValue</code> to populate the cell.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
    Function formatters are applied before the return value or (potentially
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
    altered) <code>o.value</code> property is tested for <code>undefined</code>, <code>null</code>, or the empty
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
    string.  In any of these cases, the <code>emptyCellValue</code> populates the cell.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
    The <code>emptyCellValue</code> configuration is ignored by columns configured with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
    <code>nodeFormatter</code>s.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
<h2 id="data">Table Data Configuration</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
    Each record in the table is stored as a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
    <a href="../model/index.html">Model</a> instance, where the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
    keys of the record objects become Model attributes.  This allows you to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
    interact with the models as you would any other <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
    href="../base/index.html">Base</a>-based class, with <code>get(attr)</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
    <code>set(attr, value)</code>, and subscribing to attribute change events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
<pre class="code prettyprint">var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
    { item: &quot;widget&quot;,   cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
    { item: &quot;gadget&quot;,   cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
    { item: &quot;sprocket&quot;, cost: 4.08, price: 3.75 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
    { item: &quot;nut&quot;,      cost: 0.01, price: 0.25 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
    columns: [&quot;item&quot;, &quot;cost&quot;, &quot;price&quot;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
    data: data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
var sprocket = table.getRecord(2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
&#x2F;&#x2F; Fires a costChange event, and the table is updated if rendered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
sprocket.set(&#x27;cost&#x27;, 2.65);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
    The Model class used to store the record data is created for you, based on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
    the objects in the <code>data</code> array.  If <code>data</code> is not set, the column keys
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
    identified in the <code>columns</code> configuration is used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
<h3 id="recordtype">Specifying the Record Model</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
    To use a custom Model for your records, pass your Model subclass to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
    <code>recordType</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
<pre class="code prettyprint">var pieTable = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
    recordType: Y.PieModel,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
    columns: [&#x27;slices&#x27;, &#x27;type&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
    data: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
        &#x2F;&#x2F; Y.PieModel has attributes &#x27;slices&#x27;, which defaults to 6, and &#x27;type&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
        &#x2F;&#x2F; which defaults to &#x27;apple&#x27;. Records can use these defaults.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
        { type: &#x27;lemon meringue&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
        { type: &#x27;chocolate creme&#x27;, slices: 8 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
        {} &#x2F;&#x2F; equivalent to { type: &#x27;apple&#x27;, slices: 6 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
    ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
&#x2F;&#x2F; Y.PieModel has its idAttribute assigned to &#x27;type&#x27;, overriding the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
&#x2F;&#x2F; of &#x27;id&#x27;.  Fetch a PieModel by its id.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
var applePie = pieTable.getRecord(&#x27;apple&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
&#x2F;&#x2F; eatSlice is a method on the Y.PieModel prototype
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
applePie.eatSlice();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
    Alternately, <code>recordType</code> will accept an array of attribute strings or an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
    <code>ATTRS</code> configuration object to make it easier to create custom attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
    behaviors without needing to explicitly build the Model subclass.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
    If the <code>columns</code> configuration is omitted, but the <code>recordType</code> is set, the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
    <code>columns</code> will default to the <code>recordType</code>'s attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
<pre class="code prettyprint">var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
    { item: &quot;widget&quot;,   cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
    { item: &quot;gadget&quot;,   cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
    { item: &quot;sprocket&quot;, cost: 4.08, price: 3.75 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
    { item: &quot;nut&quot;,      cost: 0.01, price: 0.25 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
&#x2F;&#x2F; Effectively synonymous with setting the columns attribute if no special
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
&#x2F;&#x2F; column configuration is needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
    recordType: [ &#x27;item&#x27;, &#x27;cost&#x27;, &#x27;price&#x27; ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
    data: data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
&#x2F;&#x2F; Or for more control, pass an ATTRS configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
    recordType: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
        item: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
        cost: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
            value: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
            setter: function (val) { return +val || 0; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
        price: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
            valueFn: function () { return (this.get(&#x27;cost&#x27;) + 0.1) * 10; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
            setter: function (val) { return +val || 0; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
    data: data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
    When the table data is loaded asychronously, it is often a good idea to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
    configure the <code>recordType</code>.  This can prevent the generation of a record
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
    Model that is missing fields that are omitted from the <code>columns</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
    configuration because they aren't intended for viewing.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
<h3 id="modellist">The <code>data</code> ModelList</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
    The record Models are stored in a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
    <a href="../model-list/index.html">ModelList</a>, which is assigned to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
    <code>data</code> <em>property</em> on the instance (for easier access than going through <code>table.get(&#x27;data&#x27;)</code>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
<pre class="code prettyprint">var records = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
    { item: &quot;widget&quot;,   cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
    { item: &quot;gadget&quot;,   cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
    { item: &quot;sprocket&quot;, cost: 4.08, price: 3.75 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
    columns: [&quot;item&quot;, &quot;cost&quot;, &quot;price&quot;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
    data   : records
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
&#x2F;&#x2F; Add a new Model using the ModelList API. This will fire
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
&#x2F;&#x2F; events and change the table if rendered.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
table.data.add({ item: &quot;nut&quot;, cost: 0.01, price: 0.25 });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
    When assigning the DataTable's <code>data</code> attribute with an array, a ModelList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
    is created for you.  But you can also pass a ModelList instance if you are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
    sharing a ModelList between widgets on the page, or you have created custom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
    Model and ModelList classes with additional logic, such as adding a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
    <a href="../model-list/#implementing-a-list-sync-layer">data sync layer</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
<pre class="code prettyprint">var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
    columns: [&#x27;type&#x27;, &#x27;slices&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
    data: new Y.PieList()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
&#x2F;&#x2F; The Y.PieList class implements a sync layer, enabling its load() method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
table.data.load(function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
    table.render(&#x27;#pies&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
<h3 id="getting-data">Getting Remote Table Data</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
    To fetch remote data, you have three options:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
            <strong>For quick one-offs</strong>, you can load and parse the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
            data manually, using <code>Y.io(...)</code>, <code>Y.jsonp(...)</code>, etc., then assign
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
            that data to the DataTable's <code>data</code> attribute.  This isn't very
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
            elegant or maintainable, so is best avoided for anything other than
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
            proofs of concept.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
            <strong>For the most control</strong>, better maintainability, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
            better encapsulation of business logic, create Model and ModelList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
            subclasses that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
            <a href="../model-list/#implementing-a-list-sync-layer">implement a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
            sync layer</a> as suggested above.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
            <strong>For common read-only scenarios</strong>, use the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
            <a href="http://yuilibrary.com/yui/docs/api/classes/Plugin.DataTableDataSource.html"><code>Y.Plugin.DataTableDataSource</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
            plugin to bind your table to a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
            <a href="../datasource/index.html"><code>DataSource</code></a> instance.  Use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
            plugins to add DataSource features.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
<pre class="code prettyprint">&#x2F;&#x2F; Create a JSONP DataSource to query YQL
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
var myDataSource = new Y.DataSource.Get({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
    source: &#x27;http:&#x2F;&#x2F;query.yahooapis.com&#x2F;v1&#x2F;public&#x2F;yql?format=json&amp;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
            &#x27;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&amp;q=&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
myDataSource.plug(Y.Plugin.DataSourceJSONSchema, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
        schema: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
            resultListLocator: &#x27;query.results.Result&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
            resultFields: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
                &#x27;Title&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
                &#x27;Phone&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
                    &#x2F;&#x2F; Important that record fields NOT include &quot;.&quot;, so
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
                    &#x2F;&#x2F; extract nested data with locators
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
                    key: &#x27;Rating&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
                    locator: &quot;Rating.AverageRating&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
            ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
    })
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
    .plug(Y.Plugin.DataSourceCache, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
        max: 3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
&#x2F;&#x2F; No data is provided at construction because it will load via the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
&#x2F;&#x2F; DataTableDataSource plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
    columns: [&#x27;Title&#x27;, &#x27;Phone&#x27;, &#x27;Rating&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
    summary: &#x27;Pizza places near 98089&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
table.plug(Y.Plugin.DataTableDataSource, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
    datasource: myDataSource
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
})
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
&#x2F;&#x2F; Initially render an empty table and show a loading message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
table.render(&#x27;#pizza&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
     .showMessage(&#x27;loadingMessage&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
&#x2F;&#x2F; Load the data into the table
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
table.datasource.load({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
    request: encodeURIComponent(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
        &#x27;select *&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
        &#x27; from   local.search&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
        &#x27; where  zip=&quot;94089&quot;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
        &#x27; and    query=&quot;pizza&quot;&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
<h2 id="features">DataTable Modules and Features</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
    For a basic, stripped down <code>Y.DataTable</code> class, include the <code>datatable-base</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
    module in your <code>use()</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
    Feature modules, such as <code>datatable-sort</code>, will bring in <code>datatable-base</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
    automatically.  By including only feature modules in your <code>use()</code>, you will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
    get a <code>Y.DataTable</code> that supports specifically those features, without
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
    extra code for other features you won't be using.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
    The <code>datatable</code> module is a bundle of <code>datatable-base</code> plus a set of common
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
    feature modules.  Other feature modules need to be included explicitly in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
    <code>use()</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
<thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
        <th>Module</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
        <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
        <th>In <code>datatable</code>?</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
</thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
<tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-core.html"><code>datatable-core</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
            The core API for DataTable, implemented as a class extension, used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
            by <code>datatable-base</code> to create <code>Y.DataTable</code> and <code>Y.DataTable.Base</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-base.html"><code>datatable-base</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
            Creates the <code>Y.DataTable</code> and <code>Y.DataTable.Base</code> classes, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
            defaults the <code>headerView</code> and <code>bodyView</code> to <code>Y.DataTable.HeaderView</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
            and <code>Y.DataTable.BodyView</code> respectively.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-head.html"><code>datatable-head</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
            Creates the <code>Y.DataTable.HeaderView</code> class as a subclass of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
            <code>Y.View</code>.  DataTable defers rendering of the <code>&lt;thead&gt;</code> content to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
            this View when it is passed as the DataTable's <code>headerView</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
            attribute (the default, as set by <code>datatable-base</code>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-body.html"><code>datatable-body</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
            Creates the <code>Y.DataTable.BodyView</code> class as a subclass of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
            <code>Y.View</code>.  DataTable defers rendering of the <code>&lt;tbody&gt;</code> content to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
            this View when it is passed as the DataTable's <code>bodyView</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
            attribute (the default, as set by <code>datatable-base</code>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-message.html"><code>datatable-message</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
            Creates the <code>Y.DataTable.Message</code> class extension and adds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
            <code>showMessage</code> and <code>hideMessage</code> methods to <code>Y.DataTable</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-column-widths.html"><code>datatable-column-widths</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
            Creates the <code>Y.DataTable.ColumnWidths</code> class extension, and adds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
            support for the <code>width</code> property in column configuration objects
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
            to <code>Y.DataTable</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-mutable.html"><code>datatable-mutable</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
            Creates the <code>Y.DataTable.Mutable</code> class extension and adds methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
            such as <code>addRow</code>, <code>removeRow</code>, and <code>moveColumn</code> to <code>Y.DataTable</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1079
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1080
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1081
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-sort.html"><code>datatable-sort</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
            Creates the <code>Y.DataTable.Sortable</code> class extension and adds methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
            <code>sort</code> and <code>toggleSort</code> as well as attributes <code>sortable</code> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
            <code>sortBy</code> to <code>Y.DataTable</code>.  Enables sorting the table rows by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
            clicking on column headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-datasource.html"><code>datatable-datasource</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
            Creates the <code>Y.Plugin.DataTableDataSource</code> plugin for binding a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
            DataSource instance to the table as its source of record data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
        <td>yes</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-scroll.html"><code>datatable-scroll</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
            Creates the <code>Y.DataTable.Scroll</code> class extension and adds attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
            <code>scrollable</code> to <code>Y.DataTable</code>.  Adds support for vertically and/or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
            horizontally scrolling table rows within fixed table dimensions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
        <td>no</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
        <td><a href="http://yuilibrary.com/yui/docs/api/modules/datatable-formatters.html"><code>datatable-formatters</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
            Populates <code>Y.DataTable.BodyView.Formatters</code> with a collection of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
            cell formatting functions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
        <td>no</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
</tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
<h3 id="base">Features in <code>DataTable.Base</code></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
    By including only <code>datatable-base</code> in your <code>use()</code> line, you get both
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
    <code>Y.DataTable</code> and <code>Y.DataTable.Base</code> classes.  With no other module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
    inclusion, these classes are effectively the same.  When additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
    DataTable related modules are included, those modules' features will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
    usually be added to <code>Y.DataTable</code>, but <strong>never</strong> to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
    <code>Y.DataTable.Base</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
    Though it can be instantiated, the purpose of <code>Y.DataTable.Base</code> is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
    primarily as a superclass to a custom DataTable implementation that has a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
    locked set of features that will not be modified, as <code>Y.DataTable</code> can be,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
    by the inclusion of other modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
<pre class="code prettyprint">&#x2F;&#x2F; Create a custom DataTable that includes only the core set of APIs, plus
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
&#x2F;&#x2F; sorting and message support.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
Y.MyDataTable = Y.Base.create(&#x27;myTable&#x27;, Y.DataTable.Base,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
    [ Y.DataTable.Sortable, Y.DataTable.Message ]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
Y.use(&#x27;datatable-scroll&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
    &#x2F;&#x2F; Y.DataTable now has support for scrolling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
    var table = new Y.DataTable({ scrollable: &#x27;y&#x27;, ... });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
    &#x2F;&#x2F; Y.MyDataTable does not (the config does nothing)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
    var myTable = new Y.MyDataTable({ scrollable: &#x27;y&#x27;, ... });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
    <code>Y.DataTable.Base</code> includes the <code>columns</code>, <code>data</code>, <code>caption</code>, and other
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
    basic table attributes, the underlying ModelList and View rendering
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
    architecture, as well as methods to fetch rows and cells or columns and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
    records.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
    Rendering features include most column configurations, such as <code>children</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
    and <code>allowHTML</code>, as well as column formatting options <code>formatter</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
    <code>nodeFormatter</code>, <code>cellTemplate</code>, etc.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
<h3 id="datatable-message">Table Messages</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
    The <code>datatable-message</code> module adds the ability to display a message in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
    table body.  By default, the "emptyMessage" will display when the table's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
    ModelList has no data records.  The message will hide when data is added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
<pre class="code prettyprint">var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
    columns: [&quot;id&quot;, &quot;name&quot;, &quot;price&quot;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
    data: []
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
}).render(&#x27;#example&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1177
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1179
<div id="message-example" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1181
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1182
YUI({ filter: 'raw' }).use('datatable-message', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1183
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1184
        columns: ["id", "name", "price"],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1185
        data: []
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1186
    }).render('#message-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1187
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1188
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1190
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1191
    Use <code>table.showMessage(&quot;message&quot;)</code> and <code>table.hideMessage()</code> to toggle the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1192
    message display.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1193
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1194
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1195
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1196
    <code>showMessage</code> supports internationalized strings by using a few named
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1197
    strings, which are registered in the language packs for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1198
    <code>datatable-message</code> module .  These strings are currently:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1199
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1201
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1202
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1203
        <code>table.showMessage(&quot;emptyMessage&quot;)</code> defaults to "No data to display".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1204
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1205
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1206
        <code>table.showMessage(&quot;loadingMessage&quot;)</code> defaults to "Loading...".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1207
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1208
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1209
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1210
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1211
    Other values passed to <code>showMessage</code> will pass that content directly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1212
    through to the message Node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1213
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1214
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1215
<h3 id="colwidths">Column Width Configuration</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1217
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1218
    The <code>datatable-column-widths</code> module adds basic support for specifying
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1219
    column widths.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1220
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1221
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1222
<pre class="code prettyprint">var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1223
    columns: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1224
        { key: &#x27;item&#x27;, width: &#x27;125px&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1225
        { key: &#x27;cost&#x27;, formatter: &#x27;${value}&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1226
        ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1227
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1228
    data   : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1229
}).render(&quot;#example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1232
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1234
<div id="colwidths-example" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1236
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1237
YUI({ filter: 'raw' }).use('datatable-column-widths', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1238
    var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1239
        { item: "widget",   cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1240
        { item: "gadget",   cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1241
        { item: "sprocket", cost: 4.08, price: 3.75 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1242
        { item: "nut",      cost: 0.01, price: 0.25 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1243
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1245
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1246
        columns: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1247
            { key: 'item', width: '125px' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1248
            { key: 'cost', formatter: '${value}' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1249
            { key: 'price', formatter: '${value}' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1250
            { key: 'profit', formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1251
                    var price = o.data.price,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1252
                        cost  = o.data.cost;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1254
                    return (((price - cost) / cost) * 100).toFixed(2) + '%';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1255
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1256
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1257
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1258
        data   : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1259
    }).render("#colwidths-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1260
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1261
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1263
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1264
    <strong>CAVEAT</strong>: Column widths will expand beyond the configured
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1265
    value if column cells contain data that is long and can't line-wrap.  Also,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1266
    column widths may be reduced below the configured value if the table width
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1267
    (by configuring the DataTable's <code>width</code> attribute, or constrained by a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1268
    narrow containing element) is too narrow to fit all data at the configured
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1269
    widths.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1270
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1272
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1273
    To force column widths, including cell data truncation and allowing the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1274
    table to spill beyond its configured or inherited width, wrap the cell
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1275
    content in a <code>&lt;div&gt;</code> either by configuring the column's <code>formatter</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1276
    <code>cellTemplate</code>, then assign the <code>&lt;div&gt;</code>'s CSS style with the desired width
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1277
    (or "inherit"), plus <code>overflow: hidden;</code>.  Then set the DataTable column's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1278
    <code>width</code> configuration accordingly.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1279
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1281
<h3 id="sorting">Column sorting</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1283
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1284
    The <code>datatable-sort</code> module adds support for sorting the table rows either
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1285
    through the added APIs or by clicking on the table headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1286
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1288
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1289
    By default, when <code>datatable-sort</code> is included, DataTables will inspects
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1290
    the <code>columns</code> objects, looking for <code>sortable: true</code> to enable table sorting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1291
    by those columns, triggered by clicking on their respective headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1292
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1293
<pre class="code prettyprint">var cols = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1294
    { key: &quot;Company&quot;, sortable: true },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1295
    { key: &quot;Phone&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1296
    { key: &quot;Contact&quot;, sortable: true }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1297
];</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1300
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1301
    For convenience, you can enable header-click sorting for all columns by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1302
    setting the <code>sortable</code> attribute to <code>true</code>, or pass an array of column keys
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1303
    to enable just those column's headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1304
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1306
<pre class="code prettyprint">&#x2F;&#x2F; Set all columns to be sortable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1307
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1308
    columns: [&quot;Company&quot;, &quot;Phone&quot;, &quot;Contact&quot;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1309
    data: ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1310
    sortable: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1311
}).render(&quot;#example&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1314
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1316
<div id="sort-example1" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1318
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1319
YUI({ filter: 'raw' }).use('datatable-sort', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1320
    var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1321
        columns: ['Company', 'Phone', 'Contact'],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1322
        data: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1323
            { Company: "Company Bee", Phone: "415-555-1234", Contact: "Sally Spencer"},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1324
            { Company: "Acme Company", Phone: "650-555-4444", Contact: "John Jones"},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1325
            { Company: "Indutrial Industries", Phone: "408-555-5678", Contact: "Robin Smith"}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1326
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1327
        sortable: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1328
    }).render('#sort-example1');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1329
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1330
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1331
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1332
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1333
    Hold down the <code>shift</code> key while clicking on column headers to subsort by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1334
    that column.  Doing so repeatedly will toggle the subsort direction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1335
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1336
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1337
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1338
    As long as the <code>datatable-sort</code> module has been included, you will always
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1339
    be able to sort the table data through the API, even by columns that aren't
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1340
    configured to accept header-click sorting.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1341
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1343
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1344
    When a table is sorted, any new records added to the DataTable's ModelList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1345
    will be inserted at the proper sorted index, as will the created table
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1346
    rows.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1347
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1349
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1350
    Disable header-click sorting by setting <code>sortable</code> to <code>false</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1351
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1352
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1353
    The default sort order is case insensitive, the sort order can be set to case sensitive
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1354
    by using the <code>caseSensitive</code> attribute, see <a href="#column-config">Appendix A</a> below.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1355
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1357
<h4 id="customsort">Custom Sorting</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1359
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1360
    Assign a function to a column's <code>sortFn</code> to support customized sorting.  The
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1361
    function will receive the two records being compared and a boolean flag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1362
    indicating a descending sort was requested.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1363
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1365
<pre class="code prettyprint">var columns = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1366
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1367
        key: &#x27;id&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1368
        label: &#x27;&amp;#9679;&#x27;, &#x2F;&#x2F; a big dot
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1369
        formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1370
            return o.value ? &#x27;&#x27; : &#x27;&amp;#9679;&#x27;; &#x2F;&#x2F; only new records have a dot
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1371
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1372
        sortable: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1373
        sortFn: function (a, b, desc) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1374
            var aid   = a.get(&#x27;id&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1375
                bid   = b.get(&#x27;id&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1376
                acid  = a.get(&#x27;clientId&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1377
                bcid  = b.get(&#x27;clientId&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1378
                order = &#x2F;&#x2F; existing records are equivalent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1379
                        (aid &amp;&amp; bid) ? 0 :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1380
                        &#x2F;&#x2F; new records are grouped apart from existing records
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1381
                        (aid &amp;&amp; -1) || (bid &amp;&amp; 1) ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1382
                        &#x2F;&#x2F; new records are sorted by insertion order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1383
                        (acid &gt; bcid) ? 1 : -(acid &lt; bcid);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1384
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1385
            return desc ? -order : order;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1386
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1387
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1388
    ...</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1389
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1390
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1391
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1392
    The function must return 1, 0, or -1.  1 specifies that the Model passed as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1393
    the first parameter should sort below the Model passed as the second
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1394
    parameter.  -1 for above, and 0 if they are equivalent for the purpose of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1395
    this sort.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1396
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1397
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1399
<h4 id="sortapi">Sorting Methods</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1401
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1402
    To sort the table in the code, call <code>table.sort(NAME OR KEY)</code>.  To
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1403
    toggle the sort direction, call <code>table.toggleSort(NAME OR KEY)</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1404
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1406
<pre class="code prettyprint">&#x2F;&#x2F; Sorts the table by values in the price field in ascending order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1407
table.sort(&#x27;price&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1408
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1409
&#x2F;&#x2F; Flips to descending
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1410
table.toggleSort(&#x27;price&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1413
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1414
    To sort by multiple columns, pass an array of column keys to <code>sort</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1415
    <code>toggleSort</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1416
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1417
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1418
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1419
    Calling <code>toggleSort</code> with no arguments will reverse all current sort
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1420
    directions.  Calling with specific column names or keys will toggle only
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1421
    those columns.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1422
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1423
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1424
<pre class="code prettyprint">&#x2F;&#x2F; Sort first by author, subsort by title in ascending order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1425
table.sort([&#x27;author&#x27;, &#x27;title&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1426
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1427
&#x2F;&#x2F; Now descending by author then title
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1428
&#x2F;&#x2F; same as table.toggleSort([&#x27;author&#x27;, &#x27;title&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1429
table.toggleSort();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1430
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1431
&#x2F;&#x2F; Now ascending by author, descending by title
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1432
table.toggleSort(&#x27;author&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1435
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1436
    To specify a sort direction, pass an object instead of a string to <code>sort</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1437
    The object should have the column name as the key, and sort direction as its
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1438
    value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1439
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1440
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1441
<pre class="code prettyprint">&#x2F;&#x2F; Explicitly sort by price in descending order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1442
table.sort({ price: &#x27;desc&#x27; });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1443
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1444
&#x2F;&#x2F; Each column gets its own object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1445
table.sort([{ author: &#x27;desc&#x27; }, { title: &#x27;desc&#x27; }]);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1447
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1448
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1449
    Acceptable values for the sort direction are "asc", "desc", 1, and -1. 1 is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1450
    equivalent to "asc", and -1 to "desc".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1451
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1452
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1453
<h4 id="sortby">The <code>sortBy</code> Attribute</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1454
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1455
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1456
    Every sort operation updates the <code>sortBy</code> attribute.  You can also trigger
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1457
    a sort by setting this attribute directly.  It accepts the same values as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1458
    the <code>sort</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1459
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1461
<pre class="code prettyprint">&#x2F;&#x2F; Sort by author in descending order, then by title in ascending order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1462
table.set(&#x27;sortBy&#x27;, [{ author: -1 }, &#x27;title&#x27;]);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1463
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1465
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1466
    To specify an initial sort order for your table, assign this attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1467
    during instantiation.  This will sort the data as soon as it is added
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1468
    to the table's ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1469
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1470
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1471
<pre class="code prettyprint">&#x2F;&#x2F; Pre-sort the data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1472
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1473
    columns: [&#x27;item&#x27;, &#x27;cost&#x27;, &#x27;price&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1474
    data: [...],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1475
    sortBy: { price: -1 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1476
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1477
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1478
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1479
<h4 id="sortevent">The <code>sort</code> Event</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1481
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1482
    Clicking on a column header, or calling the <code>sort</code> or <code>toggleSort</code> methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1483
    will fire a <code>sort</code> method containing an <code>e.sortBy</code> property that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1484
    corresponds to the requested sort column and direction.  The value will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1485
    in either string or object format, depending on how each method was used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1486
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1487
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1488
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1489
    Preventing the <code>sort</code> event will prevent the <code>sortBy</code> attribute from being
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1490
    updated.  Updating the <code>sortBy</code> attribute directly will not fire the <code>sort</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1491
    event, but will still sort the data and update the table.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1492
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1493
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1494
<h3 id="mutation">Table Mutation APIs (<code>addRow</code>, etc)</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1496
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1497
    The <code>datatable-mutable</code> module adds APIs for adding, removing, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1498
    modifying records and columns.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1499
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1501
<h4 id="column-mutation">Column Mutation Methods</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1503
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1504
    Use the methods <code>addColumn</code>, <code>removeColumn</code>, <code>modifyColumn</code>, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1505
    <code>moveColumn</code> to update the table's configured <code>columns</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1506
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1507
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1508
<pre class="code prettyprint">&#x2F;&#x2F; Insert a column for the profit field in the data records as the third column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1509
table.addColumn(&#x27;profit&#x27;, 2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1510
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1511
&#x2F;&#x2F; Actually, make that the fourth column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1512
table.moveColumn(&#x27;profit&#x27;, 3);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1514
&#x2F;&#x2F; Actually, strike that.  Don&#x27;t show it after all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1515
table.removeColumn(&#x27;profit&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1517
&#x2F;&#x2F; Instead, add a formatter to the price column that includes the profit data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1518
table.modifyColumn(&#x27;price&#x27;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1519
    formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1520
        return o.value + &#x27; (&#x27; + (o.data.profit &#x2F; o.data.cost).toFixed(2) + &#x27;%)&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1521
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1522
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1524
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1525
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1526
    Each column mutation method fires an identically named event.  See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1527
    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.html">the API docs</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1528
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1530
<h4 id="row-mutation">Row Mutation Methods</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1532
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1533
    Use the methods <code>addRow</code>, <code>addRows</code>, <code>removeRow</code>, and <code>modifyRow</code> to update
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1534
    the table's ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1535
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1536
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1537
<pre class="code prettyprint">table.addRow({ item: &#x27;collet&#x27;, cost: 0.42, price: 2.65 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1538
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1539
table.addRows([
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1540
    { item: &#x27;nut&#x27;,    cost: 0.42, price: 2.65 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1541
    { item: &#x27;washer&#x27;, cost: 0.01, price: 0.08 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1542
    { item: &#x27;bit&#x27;,    cost: 0.19, price: 0.97 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1543
]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1545
&#x2F;&#x2F; Remove table records by their Model, id, clientId, or index
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1546
table.removeRow(0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1548
&#x2F;&#x2F; Modify a record by passing its id, clientId, or index, followed by an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1549
&#x2F;&#x2F; object with new field values
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1550
table.modifyRow(&#x27;record_4&#x27;, { cost: 0.74 });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1551
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1552
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1553
    Everything that's done by these methods can be accomplished through the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1554
    table's ModelList instance methods, but having methods on the table itself
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1555
    can make the code more readable.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1556
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1558
<pre class="code prettyprint">&#x2F;&#x2F; Same as table.addRow(...);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1559
table.data.add({ item: &#x27;collet&#x27;, cost: 0.42, price: 2.65 });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1560
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1561
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1562
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1563
    By default, changes made to the table are only local, they don't update the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1564
    server or other data origin if the data was served remotely.  However, if
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1565
    your table's ModelList is built with a sync layer, the mutation methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1566
    can also trigger the appropriate sync behavior by passing an additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1567
    argument to the methods, an object with the property <code>sync</code> set to <code>true</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1568
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1569
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1570
<pre class="code prettyprint">&#x2F;&#x2F; Tell the server we&#x27;re down to one slice of apple pie!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1571
table.modifyRow(&#x27;apple&#x27;, { slices: 1 }, { sync: true });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1572
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1573
&#x2F;&#x2F; Uh oh, make that 0.  No more apple pie :(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1574
table.removeRow(&#x27;apple&#x27;, { sync: true });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1577
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1578
    If all modifications are destined for the server/origin, you can set the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1579
    <code>autoSync</code> attribute to <code>true</code>, and the row mutation methods will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1580
    automatically call into the sync layer.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1581
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1582
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1583
<pre class="code prettyprint">var pies = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1584
    columns: [&#x27;type&#x27;, &#x27;slices&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1585
    data: new Y.PieList()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1586
    autoSync: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1587
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1588
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1589
pies.data.load(function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1591
    pies.render(&#x27;#pie-cart&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1592
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1593
    &#x2F;&#x2F; The new PieModel&#x27;s save() method is called, notifying the server
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1594
    pies.addRow({ type: &#x27;pecan&#x27;, slices: 8 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1595
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1596
    &#x2F;&#x2F; Let us eat some pie!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1597
    pies.modifyRow(&#x27;lemon meringue&#x27;, { slices: 5 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1598
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1599
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1600
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1601
<h3 id="scrolling">Scrolling</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1602
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1603
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1604
    <strong>Note:</strong> Scrolling is not currently supported on the Android
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1605
    WebKit browser.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1606
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1607
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1608
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1609
    Scrolling functionality can be added to <code>Y.DataTable</code> by including
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1610
    <code>datatable-scroll</code> module in your <code>use()</code>.  <code>datatable-scroll</code> is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1611
    <strong>NOT</strong> included in the <code>datatable</code> rollup module, so must be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1612
    included separately.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1613
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1614
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1615
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1616
    Enable scrolling by setting the <code>scrollable</code> attribute, which accepts values
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1617
    "x", "y", "xy", <code>true</code> (same as "xy"), or <code>false</code> (the default).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1618
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1620
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1621
    Note, vertical scrolling also requires the table's <code>height</code> attribute to be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1622
    set, and horizontal scrolling requires the <code>width</code> to be set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1623
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1624
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1625
<pre class="code prettyprint">&#x2F;&#x2F; Data from the seafoodwatch YQL table as of 3&#x2F;16&#x2F;2012
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1626
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1627
    { &quot;fish&quot;: &quot;Barramundi (Imported Farmed in Open Systems)&quot;, &quot;recommendation&quot;: &quot;avoid&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1628
    { &quot;fish&quot;: &quot;Caviar, Paddlefish (Wild caught from U.S.)&quot;, &quot;recommendation&quot;: &quot;avoid&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1629
    { &quot;fish&quot;: &quot;Caviar, Sturgeon (Imported Wild-caught)&quot;, &quot;recommendation&quot;: &quot;avoid&quot; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1630
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1631
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1632
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1633
&#x2F;&#x2F; Enable vertical scrolling with scrollable &quot;y&quot;. The width is also set, but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1634
&#x2F;&#x2F; because scrollable is not &quot;x&quot; or &quot;xy&quot;, this just sets the table width.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1635
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1636
    caption: &#x27;Seafood tips for the US West Coast&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1637
    columns: [&#x27;fish&#x27;, &#x27;recommendation&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1638
    data: data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1639
    scrollable: &quot;y&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1640
    height: &quot;200px&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1641
    width:  &quot;400px&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1642
}).render(&quot;#scroll&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1643
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1644
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1645
<p>This code produces this table:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1646
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1647
<div id="scroll-example" class="yui3-skin-sam"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1648
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1649
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1650
YUI().use('datatable-scroll', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1651
// Data from the seafoodwatch YQL table as of 3/16/2012
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1652
var data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1653
    { "fish": "Barramundi (Imported Farmed in Open Systems)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1654
    { "fish": "Caviar, Paddlefish (Wild caught from U.S.)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1655
    { "fish": "Caviar, Sturgeon (Imported Wild-caught)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1656
    { "fish": "Chilean Seabass", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1657
    { "fish": "Cobia (Imported Farmed)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1658
    { "fish": "Cod, Atlantic (Trawl-caught from Canadian and U.S. Atlantic)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1659
    { "fish": "Cod, Pacific (Imported)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1660
    { "fish": "Crab, King (Imported)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1661
    { "fish": "Dab, Common (Danish Seine from Iceland)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1662
    { "fish": "Flounder (Wild-caught from U.S. Atlantic, Except Summer Flounder)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1663
    { "fish": "Hake, White", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1664
    { "fish": "Halibut, Atlantic (Wild-caught from U.S.)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1665
    { "fish": "Lobster, Caribbean Spiny (Brazil)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1666
    { "fish": "Mahi Mahi (Imported Longline)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1667
    { "fish": "Marlin, Blue (Imported)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1668
    { "fish": "Marlin, Striped", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1669
    { "fish": "Monkfish", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1670
    { "fish": "Octopus (Philippines)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1671
    { "fish": "Orange Roughy", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1672
    { "fish": "Plaice, American (Wild-caught from U.S. Atlantic)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1673
    { "fish": "Pollock, Atlantic (Danish Seine and Trawl from Iceland)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1674
    { "fish": "Salmon (Farmed including Atlantic Except U.S. Farmed in Tank Systems)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1675
    { "fish": "Sardines, Atlantic (Mediterranean)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1676
    { "fish": "Shad, American (U.S. Atlantic Gillnet)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1677
    { "fish": "Shark (Except Common Thresher and Shortfin Mako, from California and Hawaii)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1678
    { "fish": "Shrimp (Imported Farmed Except Thailand Farmed in Fully Reciruclating Systems)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1679
    { "fish": "Shrimp (Imported Wild-Caught Except Canadian)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1680
    { "fish": "Shrimp (Mexico Farmed in Open Systems)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1681
    { "fish": "Skates", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1682
    { "fish": "Snapper, Red (U.S. Gulf of Mexico Wild-caught)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1683
    { "fish": "Snapper, Red (Imported Wild-caught)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1684
    { "fish": "Sole (Wild-caught from U.S Atlantic)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1685
    { "fish": "Sturgeon (Imported Wild-caught)", "recommendation": "avoid" },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1686
    { "fish": "Swordfish (Imported)", "recommendation": "avoid" }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1687
];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1688
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1689
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1690
    caption: 'Seafood tips for the US West Coast',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1691
    columns: ['fish', 'recommendation'],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1692
    data: data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1693
    scrollable: "y",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1694
    height: "200px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1695
    width:  "400px" // scrollable is not set to x or xy, so no scrolling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1696
}).render("#scroll-example");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1697
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1698
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1699
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1700
<h2 id="events">DataTable Events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1701
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1702
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1703
    DataTable is a composition of supporting class instances and extensions, so
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1704
    to centralize event reporting, it is a bubble target for its <code>data</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1705
    ModelList as well as the View instances used for rendering.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1706
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1707
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1708
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1709
    In other words, some events you may need to subscribe to using an event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1710
    prefix to be notified.  Often, using a wildcard prefix is the simplest
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1711
    method to ensure your subscribers will be notified, even if classes change.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1712
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1713
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1714
<pre class="code prettyprint">&#x2F;&#x2F; The sort event is from an extension, so it originates from DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1715
table.after(&#x27;sort&#x27;, function (e) { ... });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1716
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1717
&#x2F;&#x2F; Model changes originate from the record&#x27;s Model instance, propagate to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1718
&#x2F;&#x2F; table&#x27;s ModelList, then finally to the DataTable, so they must be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1719
&#x2F;&#x2F; subscribed with an event prefix.  In this case, we&#x27;ll use a wildcard
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1720
&#x2F;&#x2F; prefix.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1721
table.after(&#x27;*:priceChange&#x27;, function (e) { ... });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1722
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1723
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1724
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1725
    DataTable generates a custom Model class with the "record" event prefix, if
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1726
    you want to be more specific.  Otherwise, if your table uses a custom Model
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1727
    class for its <code>recordType</code>, you can prefix Model events with the appropriate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1728
    prefix.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1729
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1730
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1731
<pre class="code prettyprint">&#x2F;&#x2F; Allow DataTable to generate the Model class automatically
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1732
var table = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1733
    columns: [&#x27;items&#x27;, &#x27;cost&#x27;, &#x27;price&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1734
    data: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1735
        { item: &quot;widget&quot;, cost: 23.57, price: 47.5 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1736
        { item: &quot;gadget&quot;, cost: 0.11, price: 6.99 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1737
        ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1738
    ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1739
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1740
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1741
&#x2F;&#x2F; generated Model classes have prefix &quot;record&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1742
table.after(&#x27;record:change&#x27;, function (e) { ... });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1743
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1744
&#x2F;&#x2F; PieList uses PieModels, which have a prefix of, you guessed it, &quot;pie&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1745
var pies = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1746
    columns: [&#x27;type&#x27;, &#x27;slices&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1747
    data: new Y.PieList()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1748
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1749
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1750
pies.on(&#x27;pie:slicesChange&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1751
    if (e.target.get(&#x27;type&#x27;) === &#x27;chocolate creme&#x27;) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1752
        &#x2F;&#x2F; Oh no you don&#x27;t!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1753
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1754
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1755
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1756
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1757
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1758
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1759
    The full list of events is included in <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.html#events">the DataTable API docs</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1760
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1761
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1762
<h2 id="knownissues">Known Issues</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1763
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1764
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1765
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1766
        Scrolling is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1767
        <a href="http://yuilibrary.com/projects/yui3/ticket/2529761">not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1768
        currently supported on Android</a> WebKit browser.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1769
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1770
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1771
        Scrolling DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1772
        <a href="http://yuilibrary.com/projects/yui3/ticket/2531047">may not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1773
        appear scrollable</a> on iOS browsers or OS X 10.7 depending on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1774
        system preference "Show scroll bars" (General).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1775
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1776
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1777
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1778
<h2 id="column-config">Appendix A: Column Configurations</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1779
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1780
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1781
    The properties below are supported in the column configuration objects
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1782
    passed in the <code>columns</code> attribute array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1783
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1784
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1785
<div id="column-config-table" class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1786
    <table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1787
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1788
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1789
            <th scope="col">Configuration</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1790
            <th scope="col">Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1791
            <th scope="col">Module</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1792
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1793
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1794
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1795
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1796
            <td>key</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1797
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1798
<pre class="code prettyprint">{ key: &#x27;username&#x27; }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1799
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1800
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1801
                    Binds the column values to the named property in the <code>data</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1802
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1803
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1804
                    Optional if <code>formatter</code>, <code>nodeFormatter</code>, or <code>cellTemplate</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1805
                    is used to populate the content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1806
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1807
                <p>It should not be set if <code>children</code> is set.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1808
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1809
                    The value is used for the <code>_id</code> property unless the <code>name</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1810
                    property is also set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1811
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1812
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1813
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1814
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1815
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1816
            <td>name</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1817
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1818
<pre class="code prettyprint">{ name: &#x27;fullname&#x27;, formatter: ... }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1819
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1820
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1821
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1822
                    Use this to assign a name to pass to <code>table.getColumn(NAME)</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1823
                    or style columns with class "yui3-datatable-col-NAME" if a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1824
                    column isn't assigned a <code>key</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1825
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1826
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1827
                    The value is used for the <code>_id</code> property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1828
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1829
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1830
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1831
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1832
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1833
            <td>field</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1834
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1835
<pre class="code prettyprint">{ field: &#x27;fullname&#x27;, formatter: ... }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1836
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1837
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1838
                <p>An alias for <code>name</code> for backward compatibility.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1839
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1840
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1841
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1842
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1843
            <td>id</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1844
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1845
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1846
  name: &#x27;checkAll&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1847
  id: &#x27;check-all&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1848
  label: ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1849
  formatter: ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1850
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1851
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1852
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1853
                    Overrides the default unique id assigned <code>&lt;th id=&quot;HERE&quot;&gt;</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1854
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1855
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1856
                    <em>Use this with caution</em>, since it can result in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1857
                    duplicate ids in the DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1858
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1859
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1860
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1861
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1862
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1863
            <td>label</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1864
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1865
<pre class="code prettyprint">{ key: &#x27;MfgPrtNum&#x27;, label: &#x27;Part Number&#x27; }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1866
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1867
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1868
                <p>HTML to populate the header <code>&lt;th&gt;</code> for the column.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1869
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1870
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1871
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1872
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1873
            <td>children</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1874
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1875
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1876
                    Used to create stacked headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1877
                    <a href="#nested">See the example above</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1878
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1879
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1880
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1881
                    Child columns may also contain <code>children</code>. There is no limit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1882
                    to the depth of nesting.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1883
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1884
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1885
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1886
                    Columns configured with <code>children</code> are for display only and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1887
                    <strong>should not</strong> be configured with a <code>key</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1888
                    Configurations relating to the display of data, such as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1889
                    <code>formatter</code>, <code>nodeFormatter</code>, <code>emptyCellValue</code>, etc. are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1890
                    ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1891
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1892
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1893
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1894
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1895
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1896
            <td>abbr</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1897
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1898
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1899
  key  : &#x27;forecast&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1900
  label: &#x27;1yr Target Forecast&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1901
  abbr : &#x27;Forecast&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1902
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1903
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1904
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1905
                <p>Assigns the value <code>&lt;th abbr=&quot;HERE&quot;&gt;</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1906
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1907
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1908
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1909
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1910
            <td>title</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1911
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1912
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1913
  key  : &#x27;forecast&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1914
  label: &#x27;1yr Target Forecast&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1915
  title: &#x27;Target Forecast for the Next 12 Months&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1916
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1917
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1918
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1919
                <p>Assigns the value <code>&lt;th title=&quot;HERE&quot;&gt;</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1920
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1921
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1922
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1923
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1924
            <td>headerTemplate</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1925
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1926
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1927
  headerTemplate:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1928
    &#x27;&lt;th id=&quot;{id}&quot; &#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1929
        &#x27;title=&quot;Unread&quot; &#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1930
        &#x27;class=&quot;{className}&quot; &#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1931
        &#x27;{_id}&gt;&amp;#9679;&lt;&#x2F;th&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1932
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1933
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1934
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1935
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1936
                    Overrides the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1937
                    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.HeaderView.html#property_CELL_TEMPLATE">CELL_TEMPLATE</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1938
                    used by <code>Y.DataTable.HeaderView</code> to render the header cell
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1939
                    for this column.  This is necessary when more control is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1940
                    needed over the markup for the header itself, rather than
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1941
                    its content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1942
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1943
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1944
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1945
                    Use the <code>label</code> configuration if you don't need to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1946
                    customize the <code>&lt;th&gt;</code> iteself.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1947
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1948
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1949
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1950
                    Implementers are strongly encouraged to preserve at least
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1951
                    the <code>{id}</code> and <code>{_id}</code> placeholders in the custom value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1952
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1953
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1954
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1955
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1956
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1957
            <td>cellTemplate</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1958
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1959
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1960
  key: &#x27;id&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1961
  cellTemplate:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1962
    &#x27;&lt;td class=&quot;{className}&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1963
      &#x27;&lt;input type=&quot;checkbox&quot; &#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1964
             &#x27;id=&quot;{content}&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1965
    &#x27;&lt;&#x2F;td&gt;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1966
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1967
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1968
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1969
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1970
                    Overrides the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1971
                    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.BodyView.html#property_CELL_TEMPLATE">CELL_TEMPLATE</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1972
                    used by <code>Y.DataTable.BodyView</code> to render the data cells
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1973
                    for this column.  This is necessary when more control is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1974
                    needed over the markup for the <code>&lt;td&gt;</code> itself, rather than
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1975
                    its content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1976
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1977
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1978
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1979
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1980
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1981
            <td>formatter</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1982
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1983
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1984
                    Used to customize the content of the data cells for this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1985
                    column.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1986
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1987
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1988
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1989
                    <a href="#formatters">See the example above</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1990
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1991
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1992
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1993
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1994
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1995
            <td>nodeFormatter</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1996
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1997
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1998
                    Used to customize the content of the data cells for this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1999
                    column.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2000
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2001
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2002
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2003
                    <a href="#formatters">See the example above</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2004
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2005
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2006
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2007
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2008
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2009
            <td>emptyCellValue</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2010
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2011
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2012
  key: &#x27;price&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2013
  emptyCellValue: &#x27;???&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2014
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2015
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2016
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2017
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2018
                    Provides the default value to populate the cell if the data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2019
                    for that cell is <code>undefined</code>, <code>null</code>, or an empty string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2020
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2021
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2022
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2023
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2024
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2025
            <td>allowHTML</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2026
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2027
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2028
  key: &#x27;preview&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2029
  allowHTML: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2030
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2031
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2032
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2033
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2034
                    Skips the security step of HTML escaping the value for cells
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2035
                    in this column.  This is also necessary if <code>emptyCellValue</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2036
                    is set with an HTML string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2037
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2038
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2039
                    <code>nodeFormatter</code>s ignore this configuration.  If using a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2040
                    <code>nodeFormatter</code>, it is recommended to use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2041
                    <a href="http://yuilibrary.com/yui/docs/api/classes/Escape.html#method_html">Y.Escape.html()</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2042
                    on any user supplied content that is to be displayed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2043
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2044
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2045
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2046
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2047
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2048
            <td>className</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2049
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2050
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2051
  key: &#x27;symbol&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2052
  className: &#x27;no-hide&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2053
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2054
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2055
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2056
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2057
                    A string of CSS classes that will be added to the <code>&lt;td&gt;</code>'s
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2058
                    <code>class</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2059
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2060
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2061
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2062
                    Note, all cells will automatically have a class in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2063
                    form of "yui3-datatable-col-KEY" added to the <code>&lt;td&gt;</code>, where
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2064
                    KEY is the column's configured <code>name</code>, <code>key</code>, or <code>id</code> (in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2065
                    that order of preference).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2066
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2067
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2068
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2069
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2070
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2071
            <td>width</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2072
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2073
<pre class="code prettyprint">{ key: &#x27;a&#x27;, width: &#x27;400px&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2074
{ key: &#x27;b&#x27;, width: &#x27;10em&#x27; }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2075
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2076
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2077
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2078
                    Adds a style <code>width</code> setting to an associated <code>&lt;col&gt;</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2079
                    element for the column.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2080
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2081
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2082
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2083
                    Note, the assigned width will not truncate cell content, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2084
                    it will not preserve the configured width if doing so would
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2085
                    compromise either the instance's <code>width</code> configuration or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2086
                    the natural width of the table's containing DOM elements.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2087
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2088
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2089
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2090
                    If absolute widths are required, it can be accomplished with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2091
                    some custom CSS and the use of a <code>cellTemplate</code>, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2092
                    <code>formatter</code>.  See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2093
                    <a href="http://yuilibrary.com/yui/docs/api/modules/datatable-column-widths.html">the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2094
                    description of <code>datatable-column-widths</code></a> for an example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2095
                    of how to do this.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2096
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2097
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2098
            <td><code>datatable-column-widths</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2099
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2100
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2101
            <td>sortable</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2102
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2103
<pre class="code prettyprint">{ key: &#x27;lastLogin&#x27;, sortable: true }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2106
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2107
                    Used when the instance's <code>sortable</code> attribute is set to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2108
                    "auto" (the default) to determine which columns will support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2109
                    user sorting by clicking on the header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2110
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2111
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2112
                    If the instance's <code>key</code> attribute is not set, this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2113
                    configuration is ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2114
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2115
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2116
            <td><code>datatable-sort</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2117
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2118
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2119
            <td>caseSensitive</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2120
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2121
<pre class="code prettyprint">{ key: &#x27;lastLogin&#x27;, sortable: true, caseSensitive: true }</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2124
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2125
                    When the instance's <code>caseSensitive</code> attribute is set to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2126
                    "true" the sort order is case sensitive (relevant to string columns only).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2127
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2128
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2129
                    Case sensitive sort is marginally more efficient and should be considered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2130
                    for large data sets when case insensitive sort is not required.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2131
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2132
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2133
            <td><code>datatable-sort</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2134
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2135
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2136
            <td>sortFn</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2137
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2138
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2139
  label: &#x27;Name&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2140
  sortFn: function (a, b, desc) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2141
    var an = a.get(&#x27;lname&#x27;) + b.get(&#x27;fname&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2142
        bn = a.get(&#x27;lname&#x27;) + b.get(&#x27;fname&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2143
        order = (an &gt; bn) ? 1 : -(an &lt; bn);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2145
    return desc ? -order : order;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2146
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2147
  formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2148
    return o.data.lname + &#x27;, &#x27; + o.data.fname;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2149
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2150
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2152
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2153
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2154
                    Allows a column to be sorted using a custom algorithm.  The
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2155
                    function receives three parameters, the first two being the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2156
                    two record Models to compare, and the third being a boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2157
                    <code>true</code> if the sort order should be descending.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2158
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2159
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2160
                    The function should return <code>-1</code> to sort <code>a</code> above <code>b</code>, <code>-1</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2161
                    to sort <code>a</code> below <code>b</code>, and <code>0</code> if they are equal.  Keep in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2162
                    mind that the order should be reversed when <code>desc</code> is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2163
                    <code>true</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2164
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2165
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2166
                    The <code>desc</code> parameter is provided to allow <code>sortFn</code>s to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2167
                    always sort certain values above or below others, such as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2168
                    always sorting <code>null</code>s on top.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2169
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2170
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2171
            <td><code>datatable-sort</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2172
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2173
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2174
            <td>sortDir</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2175
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2176
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2177
                    (<strong>read-only</strong>) If a column is sorted, this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2178
                    will be set to <code>1</code> for ascending order or <code>-1</code> for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2179
                    descending.  This configuration is public for inspection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2180
                    but can't be used during DataTable instantiation to set the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2181
                    sort direction of the column.  Use the table's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2182
                    <a href="http://yuilibrary.com/yui/docs/api/classes/DataTable.html#attr_sortBy">sortBy</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2183
                    attribute for that.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2184
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2185
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2186
            <td><code>datatable-sort</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2187
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2188
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2189
            <td>_yuid</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2190
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2191
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2192
                    (<strong>read-only</strong>) The unique identifier assigned
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2193
                    to each column.  This is used for the <code>id</code> if not set, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2194
                    the <code>_id</code> if none of <code>name</code>, 'field<code>, </code>key<code>, or </code>id` are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2195
                    set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2196
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2197
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2198
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2199
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2200
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2201
            <td>_id</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2202
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2203
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2204
                    (<strong>read-only</strong>) A unique-to-this-instance name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2205
                    used extensively in the rendering process.  It is also used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2206
                    to create the column's classname, as the input name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2207
                    <code>table.getColumn(HERE)</code>, and in the column header's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2208
                    <code>&lt;th data-yui3-col-id=&quot;HERE&quot;&gt;</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2209
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2210
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2211
                    The value is populated by the first of <code>name</code>, <code>field</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2212
                    <code>key</code>, <code>id</code>, or <code>_yuid</code> to have a value.  If that value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2213
                    has already been used (such as when multiple columns have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2214
                    the same <code>key</code>), an incrementer is added to the end.  For
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2215
                    example, two columns with <code>key: &quot;id&quot;</code> will have <code>_id</code>s of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2216
                    "id" and "id2".  <code>table.getColumn(&quot;id&quot;)</code> will return the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2217
                    first column, and <code>table.getColumn(&quot;id2&quot;)</code> will return the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2218
                    second.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2219
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2220
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2221
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2222
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2223
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2224
            <td>_colspan</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2225
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2226
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2227
                    (<strong>read-only</strong>) Used by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2228
                    <code>Y.DataTable.HeaderView</code> when building stacked column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2229
                    headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2230
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2231
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2232
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2233
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2234
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2235
            <td>_rowspan</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2236
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2237
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2238
                    (<strong>read-only</strong>) Used by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2239
                    <code>Y.DataTable.HeaderView</code> when building stacked column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2240
                    headers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2241
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2242
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2243
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2244
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2245
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2246
            <td>_parent</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2247
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2248
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2249
                    (<strong>read-only</strong>) Assigned to all columns in a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2250
                    column's <code>children</code> collection.  References the parent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2251
                    column object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2252
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2253
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2254
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2255
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2256
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2257
            <td>_headers</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2258
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2259
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2260
                    (<strong>read-only</strong>) Array of the <code>id</code>s of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2261
                    column and all parent columns.  Used by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2262
                    <code>Y.DataTable.BodyView</code> to populate <code>&lt;td headers=&quot;THIS&quot;&gt;</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2263
                    when a cell references more than one header.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2264
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2265
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2266
            <td><code>datatable-base</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2267
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2268
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2269
    </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2270
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2272
<h2 id="formatter-props">Appendix B: Formatter Argument Properties</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2274
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2275
    The properties below are found on the object passed to <code>formatter</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2276
    functions defined in a column configuration.  See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2277
    <a href="#nodeformatter-props">Appendix C</a> for the object properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2278
    passed to <code>nodeFormatter</code>s.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2279
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2281
<div id="formatter-props-table" class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2282
    <table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2283
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2284
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2285
            <th scope="col">Property</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2286
            <th scope="col">Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2287
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2288
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2289
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2290
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2291
            <td><code>value</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2292
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2293
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2294
    &#x2F;&#x2F; assumes a numeric value for this column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2295
    return &#x27;$&#x27; + o.value.toFixed(2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2296
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2299
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2300
                    The raw value from the record Model to populate this cell.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2301
                    Equivalent to <code>o.record.get(o.column.key)</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2302
                    <code>o.data[o.column.key]</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2303
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2304
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2305
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2306
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2307
            <td><code>data</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2308
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2309
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2310
    return o.data.lname + &#x27;, &#x27; + o.data.fname;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2311
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2314
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2315
                    The Model data for this row in simple object format.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2316
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2317
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2318
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2319
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2320
            <td><code>record</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2321
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2322
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2323
    return &#x27;&lt;a href=&quot;&#x2F;service&#x2F;&#x27; + o.record.get(&#x27;id&#x27;) + &#x27;&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2324
        o.value + &#x27;&lt;&#x2F;a&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2325
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2326
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2328
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2329
                    The Model for this row.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2330
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2331
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2332
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2333
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2334
            <td><code>column</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2335
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2336
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2337
    &#x2F;&#x2F; Use a custom column property
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2338
    var format = o.column.dateFormat || &#x27;%D&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2339
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2340
    return Y.DataType.Data.format(o.value, format);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2341
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2343
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2344
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2345
                    The column configuration object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2346
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2347
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2348
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2349
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2350
            <td><code>className</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2351
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2352
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2353
    if (o.value &lt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2354
        o.className += &#x27;loss&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2355
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2356
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2359
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2360
                    A string of class names to add <code>&lt;td class=&quot;HERE&quot;&gt;</code> in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2361
                    addition to the column class and any classes in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2362
                    column's <code>className</code> configuration.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2363
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2364
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2365
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2366
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2367
            <td><code>rowIndex</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2368
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2369
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2370
    return (o.rowIndex + 1) + &#x27; - &#x27; + o.value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2371
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2374
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2375
                    The index of the current Model in the ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2376
                    <em>Typically</em> correlates to the row index as well.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2377
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2378
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2379
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2380
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2381
            <td><code>rowClass</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2382
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2383
<pre class="code prettyprint">formatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2384
    if (o.value &lt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2385
        o.rowClass += &#x27;loss&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2386
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2387
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2388
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2389
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2390
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2391
                    A string of css classes to add <code>&lt;tr class=&quot;HERE&quot;&gt;&lt;td...</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2392
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2393
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2394
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2395
                    This is useful to avoid the need for <code>nodeFormatter</code>s to add
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2396
                    classes to the containing row.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2397
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2398
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2399
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2400
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2401
    </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2402
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2403
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2404
<h2 id="nodeformatter-props">Appendix C: nodeFormatter Argument Properties</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2406
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2407
    The properties below are found on the object passed to <code>nodeFormatter</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2408
    functions defined in a column configuration.  See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2409
    <a href="#formatter-props">Appendix B</a> for the object properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2410
    passed to <code>formatter</code>s.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2411
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2413
<pre class="code prettyprint">&#x2F;&#x2F; Reference nodeFormatter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2414
nodeFormatter: function (o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2415
    if (o.value &lt; o.data.quota) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2416
        o.td.setAttribute(&#x27;rowspan&#x27;, 2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2417
        o.td.setAttribute(&#x27;data-term-id&#x27;, this.record.get(&#x27;id&#x27;));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2419
        o.td.ancestor().insert(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2420
            &#x27;&lt;tr&gt;&lt;td colspan&quot;3&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2421
                &#x27;&lt;button class=&quot;term&quot;&gt;terminate&lt;&#x2F;button&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2422
            &#x27;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2423
            &#x27;after&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2424
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2425
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2426
    o.cell.setHTML(o.value);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2427
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2430
<div id="nodeformatter-props-table" class="yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2431
    <table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2432
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2433
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2434
            <th scope="col">Property</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2435
            <th scope="col">Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2436
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2437
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2438
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2439
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2440
            <td><code>td</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2441
            <td>The <code>&lt;td&gt;</code> Node for this cell.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2442
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2443
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2444
            <td><code>cell</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2445
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2446
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2447
                    If the cell <code>&lt;td&gt;</code> contains an element with class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2448
                    "yui3-datatable-liner", this will refer to that Node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2449
                    Otherwise, it is equivalent to <code>o.td</code> (default behavior).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2450
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2452
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2453
                    By default, liner elements aren't rendered into cells, but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2454
                    to implement absolute column widths, some cell liner
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2455
                    element with <code>width</code> and <code>overflow</code> style is required
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2456
                    (barring a table style of <code>table-layout: fixed</code>).  This may
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2457
                    be applied to the columns <code>cellTemplate</code> configuration or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2458
                    to the <code>bodyView</code> instance's <code>CELL_TEMPLATE</code> for all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2459
                    columns.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2460
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2461
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2462
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2463
                    Generally, the liner, if present, corresponds to where the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2464
                    content should go, so use <code>o.cell</code> to add content and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2465
                    <code>o.td</code> to specifically work with the <code>&lt;td&gt;</code> Node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2466
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2467
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2468
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2469
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2470
            <td><code>value</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2471
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2472
                The raw value from the record Model to populate this cell.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2473
                Equivalent to <code>o.record.get(o.column.key)</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2474
                <code>o.data[o.column.key]</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2475
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2476
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2477
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2478
            <td><code>data</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2479
            <td>The Model data for this row in simple object format.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2480
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2481
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2482
            <td><code>record</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2483
            <td>The Model for this row.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2484
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2485
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2486
            <td><code>column</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2487
            <td>The column configuration object.</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2488
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2489
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2490
            <td><code>rowIndex</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2491
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2492
                The index of the current Model in the ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2493
                <em>Typically</em> correlates to the row index as well.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2494
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2495
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2496
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2497
    </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2498
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2499
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2500
YUI.add('datatable-node', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2501
    Y.Plugin.DataTable = Y.Base.create('datatable', Y.DataTable, [], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2502
        initializer: function (config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2503
            var columns = config.host.all('thead th').get('text'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2504
                count   = columns.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2505
                data    = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2506
                i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2507
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2508
            config.host.all('tbody td').each(function (node, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2509
                var record = (i % count) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2510
                        data[data.length - 1] :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2511
                        (data[data.length] = {});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2512
                record[columns[i % count]] = node.getHTML();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2513
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2514
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2515
            for (i = columns.length - 1; i >= 0; --i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2516
                columns[i] = { key: columns[i], allowHTML: true }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2517
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2519
            this.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2520
                columns    : columns,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2521
                data       : data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2522
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2524
            this.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2526
            config.host.replace(this.get('boundingBox'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2527
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2528
    }, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2529
        NS: 'table'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2530
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2532
    Y.Node.ATTRS.datatable = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2533
        setter: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2534
            if (val === true) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2535
                val = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2536
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2538
            this.plug(Y.Plugin.DataTable, val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2539
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2540
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2541
}, '0.1', { requires: ['datatable-base', 'node-pluginhost'] });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2542
YUI({ filter: 'raw' }).use('datatable-node', 'datatable-sort', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2543
    Y.one('#column-config-table table').set('datatable', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2544
        sortable: ['Configuration', 'Module']
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2545
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2546
    Y.one('#formatter-props-table table').set('datatable', true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2547
    Y.one('#nodeformatter-props-table table').set('datatable', true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2548
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2549
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2550
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2551
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2552
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2553
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2554
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2555
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2556
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2557
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2558
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2559
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2560
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2561
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2562
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2563
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2564
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2565
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2566
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2567
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2568
<a href="#migration-intro">Upgrading from version 3.4.1 or older?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2569
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2570
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2571
<a href="#using">DataTable Basics</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2572
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2573
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2574
<a href="#columns">Column Configuration</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2575
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2576
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2577
<a href="#nested">Stacked Column Headers</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2578
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2579
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2580
<a href="#formatters">Formatting Cell Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2581
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2582
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2583
<a href="#formatter-function">Setting content with <code>formatter</code> functions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2584
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2585
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2586
<a href="#nodeformatters">Setting content with <code>nodeFormatter</code> functions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2587
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2588
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2589
<a href="#formatter-vs-nodeformatter">Why <code>formatter</code> and <code>nodeFormatter</code>?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2590
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2591
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2592
<a href="#formatters-vs-empty">Formatters vs. <code>emptyCellValue</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2593
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2594
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2595
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2596
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2597
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2598
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2599
<a href="#data">Table Data Configuration</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2600
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2601
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2602
<a href="#recordtype">Specifying the Record Model</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2603
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2604
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2605
<a href="#modellist">The <code>data</code> ModelList</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2606
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2607
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2608
<a href="#getting-data">Getting Remote Table Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2609
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2610
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2611
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2612
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2613
<a href="#features">DataTable Modules and Features</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2614
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2615
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2616
<a href="#base">Features in <code>DataTable.Base</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2617
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2618
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2619
<a href="#datatable-message">Table Messages</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2620
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2621
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2622
<a href="#colwidths">Column Width Configuration</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2623
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2624
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2625
<a href="#sorting">Column sorting</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2626
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2627
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2628
<a href="#customsort">Custom Sorting</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2629
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2630
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2631
<a href="#sortapi">Sorting Methods</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2632
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2633
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2634
<a href="#sortby">The <code>sortBy</code> Attribute</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2635
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2636
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2637
<a href="#sortevent">The <code>sort</code> Event</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2638
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2639
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2640
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2641
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2642
<a href="#mutation">Table Mutation APIs (<code>addRow</code>, etc)</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2643
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2644
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2645
<a href="#column-mutation">Column Mutation Methods</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2646
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2647
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2648
<a href="#row-mutation">Row Mutation Methods</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2649
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2650
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2651
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2652
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2653
<a href="#scrolling">Scrolling</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2654
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2655
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2656
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2657
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2658
<a href="#events">DataTable Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2659
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2660
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2661
<a href="#knownissues">Known Issues</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2662
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2663
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2664
<a href="#column-config">Appendix A: Column Configurations</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2665
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2666
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2667
<a href="#formatter-props">Appendix B: Formatter Argument Properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2668
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2669
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2670
<a href="#nodeformatter-props">Appendix C: nodeFormatter Argument Properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2671
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2672
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2673
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2674
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2675
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2676
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2677
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2678
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2679
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2680
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2681
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2682
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2683
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2684
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2685
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2686
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2687
                                        <li data-description="This example illustrates simple DataTable use cases.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2688
                                            <a href="datatable-basic.html">Basic DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2689
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2690
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2691
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2692
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2693
                                        <li data-description="DataTable loaded with JSON data from a remote webservice via DataSource.Get">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2694
                                            <a href="datatable-dsget.html">DataTable + DataSource.Get + JSON Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2695
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2696
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2697
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2698
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2699
                                        <li data-description="DataTable loaded with XML data from a remote webservice via DataSource.IO.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2700
                                            <a href="datatable-dsio.html">DataTable + DataSource.IO + XML Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2701
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2702
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2703
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2704
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2705
                                        <li data-description="Custom format data for display.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2706
                                            <a href="datatable-formatting.html">Formatting Row Data for Display</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2707
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2708
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2709
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2710
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2711
                                        <li data-description="DataTable with nested column headers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2712
                                            <a href="datatable-nestedcols.html">Nested Column Headers</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2713
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2714
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2715
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2716
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2717
                                        <li data-description="DataTable with column sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2718
                                            <a href="datatable-sort.html">Column Sorting</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2719
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2720
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2721
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2722
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2723
                                        <li data-description="DataTable with vertical and/or horizontal scrolling rows.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2724
                                            <a href="datatable-scroll.html">Scrolling DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2725
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2726
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2727
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2728
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2729
                                        <li data-description="Using DataTable&#x27;s recordType attribute to create calculated, sortable columns.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2730
                                            <a href="datatable-recordtype.html">Sortable generated columns</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2731
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2732
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2733
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2734
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2735
                                        <li data-description="Populating one DataTable from details in the data of another.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2736
                                            <a href="datatable-masterdetail.html">Master and detail tables</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2737
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2738
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2739
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2740
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2741
                                        <li data-description="Checkbox column that retains checked state when sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2742
                                            <a href="datatable-chkboxselect.html">Checkbox select column</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2743
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2744
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2745
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2746
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2747
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2748
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2749
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2750
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2751
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2752
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2753
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2754
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2755
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2756
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2757
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2758
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2759
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2760
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2761
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2762
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2763
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2764
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2765
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2766
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2767
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2768
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2769
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2770
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2771
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2772
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2773
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2774
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2775
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2776
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2777
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2778
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2779
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2780
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2781
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2782
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2783
                                        <li data-description="Shows how to instantiate multiple Panel instances, and use nested modality to interact with a Datatable.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2784
                                            <a href="../panel/panel-form.html">Creating a Modal Form</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2785
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2786
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2787
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2788
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2789
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2790
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2791
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2792
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2793
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2794
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2795
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2796
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2797
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2798
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2799
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2800
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2801
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2802
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2803
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2804
    assets: '../assets/datatable',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2805
    name: 'datatable',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2806
    title: 'DataTable',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2807
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2808
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2809
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2810
YUI.Env.Tests.examples.push('datatable-basic');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2811
YUI.Env.Tests.examples.push('datatable-dsget');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2812
YUI.Env.Tests.examples.push('datatable-dsio');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2813
YUI.Env.Tests.examples.push('datatable-formatting');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2814
YUI.Env.Tests.examples.push('datatable-nestedcols');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2815
YUI.Env.Tests.examples.push('datatable-sort');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2816
YUI.Env.Tests.examples.push('datatable-scroll');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2817
YUI.Env.Tests.examples.push('datatable-recordtype');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2818
YUI.Env.Tests.examples.push('datatable-masterdetail');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2819
YUI.Env.Tests.examples.push('datatable-chkboxselect');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2820
YUI.Env.Tests.examples.push('panel-form');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2821
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2822
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2823
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2824
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2825
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2826
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2827
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2828
</html>