Customizing Cell Rendering
 
 The display characteristics of table cells can be controlled by providing a render function per column.  
 
 The 
 render function accepts three arguments: 
 
 
- The cell value
- The cell render action: filter, display, type or sort. These correspond to the actions performed when cells are rendered - in most cases, you can ignore this and return the same value for all render actions.
- The values from each cell in the corresponding row.
The render function can be provided inline within the vdl-table-column render attribute, or you can reference a function that has previously been defined in the view, allowing functions to be shared between multiple columns.
 The following example includes a shared formatter which is used to format the values for sales resource allocation into percentages, together with an inline function that performs a simple transformation. 
 
  
   
 
  
  
   
  
 
   
 
|   | 
      Note Number formatting is explained in more detail in the next section. 
       
<vdl version="4.1"> 
  <vdl-page>
    <br/>
    <script>
      function formatFrac(original) {
        return insight.Formatter.formatNumber(original, '00%');
      }
    </script>
    <vdl-section heading="Welcome to Portfolio Optimization"
                 heading-level="1">
      <vdl-section heading="Recommended share allocations"
                   heading-level="3">
        <vdl-table page-mode="paged"
                   page-size="5"
                   show-filter="true"
                   column-filter="true">
          <vdl-table-column entity="frac" 
                            size="2"
                            render="=formatFrac"></vdl-table-column>
          <vdl-table-column entity="RET" 
                            size="2"
                            render="=function(data, type, row) {
                                       return data + ' percent';
                            }"></vdl-table-column>
        </vdl-table>
      </vdl-section>
    </vdl-section>
  </vdl-page>
</vdl> | 
 
  Render Function Applied to Table Cells
 The next example includes taking an action dependent upon the 
 type argument passed to the 
 italic function: 
 
                function italic(data, type, row) { 
    data = data ? data : ''; 
    if (type === 'display') { 
        return 'Italic text ' + _.escape(data) + ''; 
    } else if (type === 'copy') { 
        return data + ' (in italics)'; 
    }
    return data;
} In this case, if the cell is rendered following a 
 copy action, the contents of the cell are rendered in italics. 
 
