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>
|