| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-grid-feature-RowBody'>/**
 
- </span> * The rowbody feature enhances the grid's markup to have an additional
 
-  * tr -> td -> div which spans the entire width of the original row.
 
-  *
 
-  * This is useful to to associate additional information with a particular
 
-  * record in a grid.
 
-  *
 
-  * Rowbodies are initially hidden unless you override getAdditionalData.
 
-  *
 
-  * Will expose additional events on the gridview with the prefix of 'rowbody'.
 
-  * For example: 'rowbodyclick', 'rowbodydblclick', 'rowbodycontextmenu'.
 
-  *
 
-  * # Example
 
-  *
 
-  *     @example
 
-  *     Ext.define('Animal', {
 
-  *         extend: 'Ext.data.Model',
 
-  *         fields: ['name', 'latin', 'desc']
 
-  *     });
 
-  * 
 
-  *     Ext.create('Ext.grid.Panel', {
 
-  *         width: 400,
 
-  *         height: 300,
 
-  *         renderTo: Ext.getBody(),
 
-  *         store: {
 
-  *             model: 'Animal',
 
-  *             data: [
 
-  *                 {name: 'Tiger', latin: 'Panthera tigris',
 
-  *                  desc: 'The largest cat species, weighing up to 306 kg (670 lb).'},
 
-  *                 {name: 'Roman snail', latin: 'Helix pomatia',
 
-  *                  desc: 'A species of large, edible, air-breathing land snail.'},
 
-  *                 {name: 'Yellow-winged darter', latin: 'Sympetrum flaveolum',
 
-  *                  desc: 'A dragonfly found in Europe and mid and Northern China.'},
 
-  *                 {name: 'Superb Fairy-wren', latin: 'Malurus cyaneus',
 
-  *                  desc: 'Common and familiar across south-eastern Australia.'}
 
-  *             ]
 
-  *         },
 
-  *         columns: [{
 
-  *             dataIndex: 'name',
 
-  *             text: 'Common name',
 
-  *             width: 125
 
-  *         }, {
 
-  *             dataIndex: 'latin',
 
-  *             text: 'Scientific name',
 
-  *             flex: 1
 
-  *         }],
 
-  *         features: [{
 
-  *             ftype: 'rowbody',
 
-  *             getAdditionalData: function(data, rowIndex, record, orig) {
 
-  *                 var headerCt = this.view.headerCt,
 
-  *                     colspan = headerCt.getColumnCount();
 
-  *                 // Usually you would style the my-body-class in CSS file
 
-  *                 return {
 
-  *                     rowBody: '<div style="padding: 1em">'+record.get("desc")+'</div>',
 
-  *                     rowBodyCls: "my-body-class",
 
-  *                     rowBodyColspan: colspan
 
-  *                 };
 
-  *             }
 
-  *         }]
 
-  *     });
 
-  */
 
- Ext.define('Ext.grid.feature.RowBody', {
 
-     extend: 'Ext.grid.feature.Feature',
 
-     alias: 'feature.rowbody',
 
-     rowBodyHiddenCls: Ext.baseCSSPrefix + 'grid-row-body-hidden',
 
-     rowBodyTrCls: Ext.baseCSSPrefix + 'grid-rowbody-tr',
 
-     rowBodyTdCls: Ext.baseCSSPrefix + 'grid-cell-rowbody',
 
-     rowBodyDivCls: Ext.baseCSSPrefix + 'grid-rowbody',
 
-     eventPrefix: 'rowbody',
 
-     eventSelector: '.' + Ext.baseCSSPrefix + 'grid-rowbody-tr',
 
-     
 
-     getRowBody: function(values) {
 
-         return [
 
-             '<tr class="' + this.rowBodyTrCls + ' {rowBodyCls}">',
 
-                 '<td class="' + this.rowBodyTdCls + '" colspan="{rowBodyColspan}">',
 
-                     '<div class="' + this.rowBodyDivCls + '">{rowBody}</div>',
 
-                 '</td>',
 
-             '</tr>'
 
-         ].join('');
 
-     },
 
-     
 
-     // injects getRowBody into the metaRowTpl.
 
-     getMetaRowTplFragments: function() {
 
-         return {
 
-             getRowBody: this.getRowBody,
 
-             rowBodyTrCls: this.rowBodyTrCls,
 
-             rowBodyTdCls: this.rowBodyTdCls,
 
-             rowBodyDivCls: this.rowBodyDivCls
 
-         };
 
-     },
 
-     mutateMetaRowTpl: function(metaRowTpl) {
 
-         metaRowTpl.push('{[this.getRowBody(values)]}');
 
-     },
 
- <span id='Ext-grid-feature-RowBody-method-getAdditionalData'>    /**
 
- </span>     * Provides additional data to the prepareData call within the grid view.
 
-      * The rowbody feature adds 3 additional variables into the grid view's template.
 
-      * These are rowBodyCls, rowBodyColspan, and rowBody.
 
-      * @param {Object} data The data for this particular record.
 
-      * @param {Number} idx The row index for this record.
 
-      * @param {Ext.data.Model} record The record instance
 
-      * @param {Object} orig The original result from the prepareData call to massage.
 
-      */
 
-     getAdditionalData: function(data, idx, record, orig) {
 
-         var headerCt = this.view.headerCt,
 
-             colspan  = headerCt.getColumnCount();
 
-         return {
 
-             rowBody: "",
 
-             rowBodyCls: this.rowBodyCls,
 
-             rowBodyColspan: colspan
 
-         };
 
-     }
 
- });</pre>
 
- </body>
 
- </html>
 
 
  |