src/cm/media/js/lib/yui/yui_3.10.3/docs/datatable/datatable-masterdetail.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>Example: Master and detail tables</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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: Master and detail tables</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><style scoped>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
  .yui3-skin-sam .yui3-datatable-caption {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    font-size: 13px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    font-style: normal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    text-align: left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
  .yui3-datatable-col-nchars {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        text-align: center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    .yui3-skin-sam .yui3-datatable tr.myhilite td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        background-color: #C0ffc0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    #mtable tbody tr {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        cursor: pointer;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
<div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    <p>Demonstrates a method of linking two DataTables together.  In this case we link a row selection within a Master (or "parent") table
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    to creation of a separate Detail (or "child") table.  This is a common usage case for datasets that may have related rows within
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    different datasets or as a result of typical database one-to-many key relationships.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
<div id="template" class="example yui3-skin-sam dt-example yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    <div class="yui3-u-1-3" id="mtable"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    <!-- This is the HTML section for the "Details" markup ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
         NOTE: it is hidden initially !!   -->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    <div class="yui3-u-2-3" id="chars" style="display:none;">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        <div id="dtable"></div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
YUI().use(   "datatable", function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    var animal_data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        {  aname: 'Lions',  chars:[ 'Leo', 'Simba', 'Elsa', 'Cowardly Lion' ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        {  aname: 'Amoebas' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        {  aname: 'Tigers', chars:[ 'Shere Kahn', 'Tigger', 'Tony' ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
        {  aname: 'Mules',  chars:[ 'Francis' ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        {  aname: 'Bears',  chars:[ 'Smokey', 'Reginald', 'Winnie-the-Pooh', 'Baloo', 'Yogi' ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        {  aname: 'Snakes', chars:[ 'Kaa', 'The Serpent', 'Nagini' ] }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    //   Create the "parent" DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    var dt_master = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
            { key:'aname',  label:'Type' },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
            { name:'nchars', label:'No. of Chars',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
              formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                   return ( o.data.chars ) ? o.data.chars.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        data : animal_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        width: 200,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
        caption: 'Select an animal category below:'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    }).render("#mtable");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    // Add a new attribute to track the last TR clicked,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    //   this is used in the details DT formatter below and later
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
    //   in the row click handler <code>delegate</code> for row highlighting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    //  also setup a click listener to update the "selectedRow" attribute on TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    //  clicks
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    dt_master.addAttr("selectedRow", { value: null });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    dt_master.delegate('click', function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        this.set('selectedRow', e.currentTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     }, '.yui3-datatable-data tr', dt_master);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    //   Create the characters DataTable and render it (it is hidden initially)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    var dt_detail = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            { name:'aname', label:'Animal Category',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
              formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
                    // just retrieve the selected Master record and return the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
                    // "aname" column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
                    var parent_rec = dt_master.getRecord(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
                        dt_master.get('selectedRow') );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
                    return parent_rec.get('aname');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
            { key:'char_name', label:'Character' }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
         ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        data : [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        strings : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            emptyMessage : "No critter characters were found!"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        width: 350,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        caption: 'Characters of the category include:'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    }).render("#dtable");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    //  Setup a listener to the Master "selectedRowChange" event (i.e. after a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    //  row click)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    dt_master.after('selectedRowChange', function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        var tr = e.newVal,              // the Node for the TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
            last_tr = e.prevVal,        //  "   "   "   the last TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
            rec = this.getRecord(tr);   // the current Record for the clicked TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        //  This if-block does double duty,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        //  (a) it tracks the first click to toggle the "details" DIV to visible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
        //  (b) it un-hightlights the last TR clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        if ( !last_tr ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            // first time thru ... display the Detail DT DIV that was hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            Y.one("#chars").show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
            last_tr.removeClass("myhilite");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        //  After unhighlighting, now highlight the current TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        tr.addClass("myhilite");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        //  Collect the "chars" member of the parent record into an array of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        //  objects  with property name "aname"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        var detail_data = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        if ( rec.get('chars') ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            Y.Array.each( rec.get('chars'), function(item){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
                detail_data.push( {char_name:item});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        //  Set the "detail_data" to the dt_detail DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        //    also update the heading in "acategory"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        //   ( it automatically refreshes )
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        dt_detail.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
            data: detail_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            caption: 'Characters of the <strong>' + rec.get('aname') +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                        '</strong> category include:'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
<h2>Sample Data</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
<p>Let's assume we have an array of data that includes parent elements and children elements.  The example we'll use defines several animal
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
categories and for each category it provides the names of some common characters from literature or pop culture of each type (<em>except for the lowly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
amoeba, we couldn't think of any ...</em>).</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
<pre class="code prettyprint">var animal_data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    {  aname: &#x27;Lions&#x27;,  chars:[ &#x27;Leo&#x27;, &#x27;Simba&#x27;, &#x27;Elsa&#x27;, &#x27;Cowardly Lion&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    {  aname: &#x27;Amoebas&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    {  aname: &#x27;Tigers&#x27;, chars:[ &#x27;Shere Kahn&#x27;, &#x27;Tigger&#x27;, &#x27;Tony&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    {  aname: &#x27;Mules&#x27;,  chars:[ &#x27;Francis&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    {  aname: &#x27;Bears&#x27;,  chars:[ &#x27;Smokey&#x27;, &#x27;Reginald&#x27;, &#x27;Winnie-the-Pooh&#x27;, &#x27;Baloo&#x27;, &#x27;Yogi&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
    {  aname: &#x27;Snakes&#x27;, chars:[ &#x27;Kaa&#x27;, &#x27;The Serpent&#x27;, &#x27;Nagini&#x27; ] }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
];</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
<h2>The DataTables</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
<p>Two DataTables are utilized for this example and for convenience they operate using the same <code>animal_data</code> JavaScript array.  In most practical applications
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
the data would probably be received from a remote source via DataSource or using the Model <code>sync</code> capability.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
<h3>The "Master" table</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
<p>Our primary DataTable consists of two columns, <code>aname</code> which is the category of the animals and the other column is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
a calculated (or "unbound") column that is populated by a custom formatter.  The custom formatter for <code>nchars</code> simply returns the length of the <code>chars</code> array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
associated with the record, or zero if none are defined.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
<pre class="code prettyprint">var dt_master = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
        { key:&#x27;aname&#x27;,  label:&#x27;Type&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        { name:&#x27;nchars&#x27;, label:&#x27;No. of Chars&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
          formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
               return ( o.data.chars ) ? o.data.chars.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
             }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    data : animal_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
    width: 200,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    caption: &#x27;Select an animal category below:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
}).render(&quot;#mtable&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
<p>Since we will need a click handler to track TR clicks on the Master DataTable, we will define a new
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
attribute <code>selectedRow</code> and setup a TR click handler that assigns this attribute on a click.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
<pre class="code prettyprint">&#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
&#x2F;&#x2F; Add a new attribute to track the last TR clicked,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
&#x2F;&#x2F;   this is used in the details DT formatter below and later
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
&#x2F;&#x2F;   in the row click handler &#x60;delegate&#x60; for row highlighting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
&#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
&#x2F;&#x2F;  also setup a click listener to update the &quot;selectedRow&quot; attribute on TR clicks
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
&#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
dt_master.addAttr(&quot;selectedRow&quot;, { value: null });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
dt_master.delegate(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    this.set(&#x27;selectedRow&#x27;, e.currentTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
 }, &#x27;.yui3-datatable-data tr&#x27;, dt_master);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
<h3>The "Detail" table</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
<p>We can proceed with defining the linked child table and rendering it initially because we have hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
this DataTable within a DIV with style <code>display:none;</code> (the DIV becomes visible on the first row click).  This child DataTable consisits of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
another calculated (i.e. unbound) column <code>aname</code> (which just fills with the parent category name) and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
  a column <code>char_name</code>.   The data for this table is initially empty, but will be populated by the click handler.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
<pre class="code prettyprint">var dt_detail = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
        { name:&#x27;aname&#x27;, label:&#x27;Animal Category&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
          formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
                &#x2F;&#x2F; just retrieve the selected Master record and return the &quot;aname&quot; column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
                var parent_rec = dt_master.getRecord( dt_master.get(&#x27;selectedRow&#x27;) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
                return parent_rec.get(&#x27;aname&#x27;);
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
        { key:&#x27;char_name&#x27;, label:&#x27;Character&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
     ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    data : [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    strings : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        emptyMessage : &quot;No critter characters were found!&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    width: 350,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    caption: &#x27;Characters of the category include:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
}).render(&quot;#dtable&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
<h2>The selectedRow Listener</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
   The "glue" between the master and detail DataTables is the delegated click handler on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
   the Master DataTable's rows -- or more specifically, the <code>selectedRowChange</code> event handler.   When a row is clicked and the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    <code>selectedRow</code> is changed, the underlying record from the Master table is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
   determined and the Detail DataTable is populated with the corresponding <code>chars</code> data from the clicked record.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
     We also handle TR highlighting for the clicked row by toggling a background color within this delegate handler.
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
<pre class="code prettyprint">dt_master.after(&#x27;selectedRowChange&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
    var tr = e.newVal,              &#x2F;&#x2F; the Node for the TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        last_tr = e.prevVal,        &#x2F;&#x2F;  &quot;   &quot;   &quot;   the last TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
        rec = this.getRecord(tr);   &#x2F;&#x2F; the current Record for the clicked TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    &#x2F;&#x2F;  This if-block does double duty,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    &#x2F;&#x2F;  (a) it tracks the first click to toggle the &quot;details&quot; DIV to visible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    &#x2F;&#x2F;  (b) it un-hightlights the last TR clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    if ( !last_tr ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        &#x2F;&#x2F; first time thru ... display the Detail DT DIV that was hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        Y.one(&quot;#chars&quot;).show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
        last_tr.removeClass(&quot;myhilite&quot;);
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
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    &#x2F;&#x2F;  After unhighlighting, now highlight the current TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    tr.addClass(&quot;myhilite&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
    &#x2F;&#x2F;  Collect the &quot;chars&quot; member of the parent record into an array of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    &#x2F;&#x2F;  objects  with property name &quot;aname&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    var detail_data = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    if ( rec.get(&#x27;chars&#x27;) ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
        Y.Array.each( rec.get(&#x27;chars&#x27;), function(item){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
            detail_data.push( {char_name:item});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    &#x2F;&#x2F;  Set the &quot;detail_data&quot; to the dt_detail DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    &#x2F;&#x2F;    also update the heading in &quot;acategory&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
    &#x2F;&#x2F;   ( it automatically refreshes )
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
    dt_detail.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
        data: detail_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        caption: &#x27;Characters of the &lt;strong&gt;&#x27; + rec.get(&#x27;aname&#x27;) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                    &#x27;&lt;&#x2F;strong&gt; category include:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    Note: In the case of the use of remote data via DataSource, the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    <code>selectedRowChange</code> handler could be modified to generate a <code>sendRequest</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
    or similar remote call for the Detail data and the <code>on:success</code> handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
    could be setup to set the <code>data</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
<h2>Full Source Code</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
<h3>CSS</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
<pre class="code prettyprint">.yui3-skin-sam .yui3-datatable-caption {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    font-size: 13px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    font-style: normal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    text-align: left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
.yui3-datatable-col-nchars {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    text-align: center;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
.yui3-skin-sam .yui3-datatable tr.myhilite td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
    background-color: #C0ffc0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
#mtable tbody tr {      &#x2F;*  Turn on cursor to show TR&#x27;s are selectable on Master DataTable only  *&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    cursor: pointer;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
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>HTML Markup</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
<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
   361
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
   362
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
   363
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
<pre class="code prettyprint">&lt;div id=&quot;template&quot; class=&quot;yui3-skin-sam dt-example yui3-g&quot;&gt; &lt;!-- You need this skin class --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    &lt;div class=&quot;yui3-u-1-3&quot; id=&quot;mtable&quot;&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    &lt;!-- This is the HTML section for the &quot;Details&quot; markup ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
         NOTE: it is hidden initially !!   --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    &lt;div class=&quot;yui3-u-2-3&quot; id=&quot;chars&quot; style=&quot;display:none;&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
        &lt;div id=&quot;dtable&quot;&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
&lt;&#x2F;div&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
<h3>Javascript</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
<pre class="code prettyprint">YUI().use(   &quot;datatable&quot;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    var animal_data = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        {  aname: &#x27;Lions&#x27;,  chars:[ &#x27;Leo&#x27;, &#x27;Simba&#x27;, &#x27;Elsa&#x27;, &#x27;Cowardly Lion&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        {  aname: &#x27;Amoebas&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        {  aname: &#x27;Tigers&#x27;, chars:[ &#x27;Shere Kahn&#x27;, &#x27;Tigger&#x27;, &#x27;Tony&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        {  aname: &#x27;Mules&#x27;,  chars:[ &#x27;Francis&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
        {  aname: &#x27;Bears&#x27;,  chars:[ &#x27;Smokey&#x27;, &#x27;Reginald&#x27;, &#x27;Winnie-the-Pooh&#x27;, &#x27;Baloo&#x27;, &#x27;Yogi&#x27; ] },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
        {  aname: &#x27;Snakes&#x27;, chars:[ &#x27;Kaa&#x27;, &#x27;The Serpent&#x27;, &#x27;Nagini&#x27; ] }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
    ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    &#x2F;&#x2F;   Create the &quot;parent&quot; DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    var dt_master = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
            { key:&#x27;aname&#x27;,  label:&#x27;Type&#x27; },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
            { name:&#x27;nchars&#x27;, label:&#x27;No. of Chars&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
              formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
                   return ( o.data.chars ) ? o.data.chars.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
                 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
        ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
        data : animal_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
        width: 200,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        caption: &#x27;Select an animal category below:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    }).render(&quot;#mtable&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
    &#x2F;&#x2F; Add a new attribute to track the last TR clicked,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    &#x2F;&#x2F;   this is used in the details DT formatter below and later
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
    &#x2F;&#x2F;   in the row click handler &#x60;delegate&#x60; for row highlighting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    &#x2F;&#x2F;  also setup a click listener to update the &quot;selectedRow&quot; attribute on TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    &#x2F;&#x2F;  clicks
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    dt_master.addAttr(&quot;selectedRow&quot;, { value: null });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    dt_master.delegate(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        this.set(&#x27;selectedRow&#x27;, e.currentTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
     }, &#x27;.yui3-datatable-data tr&#x27;, dt_master);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    &#x2F;&#x2F;   Create the characters DataTable and render it (it is hidden initially)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
    var dt_detail = new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        columns : [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
            { name:&#x27;aname&#x27;, label:&#x27;Animal Category&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
              formatter: function(o){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
                    &#x2F;&#x2F; just retrieve the selected Master record and return the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
                    &#x2F;&#x2F; &quot;aname&quot; column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
                    var parent_rec = dt_master.getRecord(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
                        dt_master.get(&#x27;selectedRow&#x27;) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
                    return parent_rec.get(&#x27;aname&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
            { key:&#x27;char_name&#x27;, label:&#x27;Character&#x27; }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
         ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
        data : [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        strings : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
            emptyMessage : &quot;No critter characters were found!&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        width: 350,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
        caption: &#x27;Characters of the category include:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    }).render(&quot;#dtable&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    &#x2F;&#x2F;  Setup a listener to the Master &quot;selectedRowChange&quot; event (i.e. after a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    &#x2F;&#x2F;  row click)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
    &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
    dt_master.after(&#x27;selectedRowChange&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
        var tr = e.newVal,              &#x2F;&#x2F; the Node for the TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
            last_tr = e.prevVal,        &#x2F;&#x2F;  &quot;   &quot;   &quot;   the last TR clicked ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
            rec = this.getRecord(tr);   &#x2F;&#x2F; the current Record for the clicked TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
        &#x2F;&#x2F;  This if-block does double duty,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
        &#x2F;&#x2F;  (a) it tracks the first click to toggle the &quot;details&quot; DIV to visible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
        &#x2F;&#x2F;  (b) it un-hightlights the last TR clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
        if ( !last_tr ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
            &#x2F;&#x2F; first time thru ... display the Detail DT DIV that was hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
            Y.one(&quot;#chars&quot;).show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
            last_tr.removeClass(&quot;myhilite&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
        &#x2F;&#x2F;  After unhighlighting, now highlight the current TR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        tr.addClass(&quot;myhilite&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
        &#x2F;&#x2F;  Collect the &quot;chars&quot; member of the parent record into an array of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
        &#x2F;&#x2F;  objects  with property name &quot;aname&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
        var detail_data = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        if ( rec.get(&#x27;chars&#x27;) ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
            Y.Array.each( rec.get(&#x27;chars&#x27;), function(item){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
                detail_data.push( {char_name:item});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
        &#x2F;&#x2F;  Set the &quot;detail_data&quot; to the dt_detail DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
        &#x2F;&#x2F;    also update the heading in &quot;acategory&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
        &#x2F;&#x2F;   ( it automatically refreshes )
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        &#x2F;&#x2F;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
        dt_detail.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
            data: detail_data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
            caption: &#x27;Characters of the &lt;strong&gt;&#x27; + rec.get(&#x27;aname&#x27;) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                        &#x27;&lt;&#x2F;strong&gt; category include:&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
                                        <li data-description="This example illustrates simple DataTable use cases.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
                                            <a href="datatable-basic.html">Basic DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
                                        <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
   521
                                            <a href="datatable-dsget.html">DataTable + DataSource.Get + JSON Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
                                        <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
   527
                                            <a href="datatable-dsio.html">DataTable + DataSource.IO + XML Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
                                        <li data-description="Custom format data for display.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
                                            <a href="datatable-formatting.html">Formatting Row Data for Display</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
                                        <li data-description="DataTable with nested column headers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
                                            <a href="datatable-nestedcols.html">Nested Column Headers</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
                                        </li>
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
                                        <li data-description="DataTable with column sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
                                            <a href="datatable-sort.html">Column Sorting</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
                                        <li data-description="DataTable with vertical and/or horizontal scrolling rows.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
                                            <a href="datatable-scroll.html">Scrolling DataTable</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
                                        <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
   557
                                            <a href="datatable-recordtype.html">Sortable generated columns</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
                                        <li data-description="Populating one DataTable from details in the data of another.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
                                            <a href="datatable-masterdetail.html">Master and detail tables</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
                                        <li data-description="Checkbox column that retains checked state when sorting.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
                                            <a href="datatable-chkboxselect.html">Checkbox select column</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
                                    
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
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
                                        <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
   611
                                            <a href="../panel/panel-form.html">Creating a Modal Form</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
    assets: '../assets/datatable',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
    name: 'datatable-masterdetail',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
    title: 'Master and detail tables',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
YUI.Env.Tests.examples.push('datatable-basic');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
YUI.Env.Tests.examples.push('datatable-dsget');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
YUI.Env.Tests.examples.push('datatable-dsio');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
YUI.Env.Tests.examples.push('datatable-formatting');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
YUI.Env.Tests.examples.push('datatable-nestedcols');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
YUI.Env.Tests.examples.push('datatable-sort');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
YUI.Env.Tests.examples.push('datatable-scroll');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
YUI.Env.Tests.examples.push('datatable-recordtype');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
YUI.Env.Tests.examples.push('datatable-masterdetail');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
YUI.Env.Tests.examples.push('datatable-chkboxselect');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
YUI.Env.Tests.examples.push('panel-form');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
</html>