[CLOSED] Render Bar chart inside grid cell using column renderer

  1. #1

    [CLOSED] Render Bar chart inside grid cell using column renderer

    Hi,

    I am trying to render a bar chart in grid cell using column renderer. I am referring to these links actually:


    http://www.sencha.com/forum/showthre...ght=grid+chart
    http://stackoverflow.com/questions/1...to-grid-column


    I am using the js function - "renderColumnChart " that is trying to create a bar chart and render it to an EXT ID that is in turn, rendered inside grid cell.

    But, this does not seem to work. I am just getting the page loaded with the grid with the data for only up to the column just before the column ( % Space) where this chart rendering is required. I am guessing the issue is somewhere is rendering, but no clue so far. Anyways, can you pls let me know whats the exact issue? Also how I can resolve this ?

    It would be great if I could get a solution soon. Thanks a lot !


    aspx code for grid:
    -------------------
    
      <ext:GridPanel ID="InstanceTable" runat="server" Frame="true" Title="Instances" ForceFit="true" AutoScroll="true" StoreID="InstanceTableStore" >
                  
                    <Store>
    
                    
    
          <ext:Store ID="InstanceTableStore" runat="server" AutoLoad="true" OnSubmitData="ExportToExcel"  >
                            <Proxy>
                                <ext:AjaxProxy Json="true" Url='<%#MainGridStoreURL%>' AutoDataBind="true" >
                                    <ActionMethods Read="POST" Create="POST" />
                                    <Headers>
                                        <ext:Parameter Name="Accept" Value="application/json" />
                                        <ext:Parameter Name="Content-Type" Value="application/json" />
                                    </Headers>
                                  <ExtraParams>
                                 <ext:StoreParameter Name="DaysBack" Value="90"/> 
                                 <ext:StoreParameter Name="CompType" Value="Sybase ASE"/>
                                 <ext:StoreParameter Name="AlertType" Value=""/>
                                  </ExtraParams>
                                    <Writer>
                                        <ext:JsonWriter Root="" Encode="true" />
                                    </Writer>
                                    <Reader>
                                        <ext:JsonReader Root="" />
                                    </Reader>
                                </ext:AjaxProxy>
                            </Proxy>
                            <Model>
                                <ext:Model ID="Model11" runat="server">
                                    <Fields>
                                        <ext:ModelField Name="PARENT_COMPONENT_ID" Type="Int" />
                                        <ext:ModelField Name="COMPONENT_ID" Type="Int" />
                                      
                                       <ext:ModelField Name="METRIC_NAME" Type="String" />
                                       <ext:ModelField Name="ENVIRONMENT" Type="String" />
                                        <ext:ModelField Name="COMPONENT_NAME" Type="String" />
                                       <ext:ModelField Name="UNIT" Type="String" />
                                        <ext:ModelField Name="PERC_USED" Type="Float" />
                                         <ext:ModelField Name="PERC_GROWTH" Type="Float" />
                                        <ext:ModelField Name="CAPACITY" Type="Float" />
                                        <ext:ModelField Name="USED" Type="Float" />
                                        <ext:ModelField Name="FREE" Type="Float" />
                                      <ext:ModelField Name="EXPECTED_MAX_DATE" Type="String" >
                                       
                                         </ext:ModelField>
                                        <ext:ModelField Name="PEAK" Type="Float" />
                                        <ext:ModelField Name="PEAK_DATE" Type="String">
    
                                   
                                        </ext:ModelField>
                                        <ext:ModelField Name="LAST_WEEK_PEAK" Type="Float" />
                                        <ext:ModelField Name="LAST_7_DAY_INCR" Type="Float" />
                                        <ext:ModelField Name="CAPACITY_NEED_6_MON" Type="Float" />
                                        <ext:ModelField Name="USED_1_MON" Type="Float" />
                                        <ext:ModelField Name="USED_6_MON" Type="Float" />
                                        <ext:ModelField Name="LAST_UPDATED" Type="String" >
                                     
                                        </ext:ModelField>
                                        <ext:ModelField Name="WEEKS_OF_DATA" Type="Int" />
                                        
                                    </Fields>
                                </ext:Model>
                            </Model>
                             <Listeners>
                             <BeforeLoad Handler="App.btnExportInstances.disable();" />
            <Load Fn="getDistinctforColumnsInsGrid"/>
            
        
            </Listeners>
                           
                        </ext:Store>
                      
                    </Store>
                    <Plugins>
                        <ext:BufferedRenderer ID="BufferedRenderer1" runat="server" />
                    </Plugins>
                    
                    <ColumnModel ID="InstanceBase" runat="server" >
                    
                        <Columns>
    
                        <ext:Column ID="Column1" runat="server" Width="150">
                       
                     
                                                <Commands>
                                                    <ext:ImageCommand Icon="ApplicationGet" CommandName="ViewDetailsDB" Text="Details " />
                                             
                                         
                                        
    
                       
                                                    <ext:ImageCommand Icon="ChartCurve" CommandName="ViewGraph" ToolTip-Text="View Graph" />
                                                </Commands>
                                          <Listeners>
                                                    <Command Handler="App.direct.ShowDetails(command,record.get('COMPONENT_ID'),record.get('COMPONENT_NAME'));"/>
                                                    
                                                   
                                                </Listeners>
                                            
    
                                            </ext:Column>
    
                                             <ext:Column ID="Column36" runat="server" Text="Environment" DataIndex="ENVIRONMENT" Width="120" Selectable="true" Align="Center"
                                >
                                  <HeaderItems>                           
                                <ext:ComboBox 
                                ID="cboEnvt"
                                     runat="server"
                                    Icon="Magnifier"
                                    TriggerAction="All"
                                    QueryMode="Local"
                                    DisplayField="ENVIRONMENT"
                                    ValueField="ENVIRONMENT">
                                   
                           
                                    <Listeners>
                                        <Change Handler="applyFilter();" Buffer="250" />
                                    </Listeners>     
                                    <Plugins>
                                        <ext:ClearButton ID="ClearButton2" runat="server" />
                                    </Plugins>
                                </ext:ComboBox>
                         
                            </HeaderItems>
                                </ext:Column>
    
                        <ext:Column ID="Column3" runat="server" Text="Component Name" DataIndex="COMPONENT_NAME" Width="215" Selectable="true" Align="Center"
                               >
                                  <HeaderItems>                           
                                <ext:TextField 
                                    ID="txtCompName" 
                                    runat="server"
                                    Icon="Magnifier"
                                   >
                           
                                    <Listeners>
                                        <Change Handler="applyFilter();" Buffer="250" />
                                    </Listeners>     
                                    <Plugins>
                                        <ext:ClearButton ID="ClearButton1" runat="server" />
                                    </Plugins>
                                </ext:TextField>
                         
                            </HeaderItems>
                                </ext:Column>
                                   <ext:Column ID="Column7" runat="server" Text="Metric Name" DataIndex="METRIC_NAME" Width="120" Align="Center"
                               >
                                  <HeaderItems>                           
                                <ext:ComboBox 
                                    ID="cboMetricName" 
                                    runat="server"
                                    Icon="Magnifier"
                                    TriggerAction="All"
                                    QueryMode="Local"
                                    DisplayField="METRIC_NAME"
                                    ValueField="METRIC_NAME">
                           
                                    <Listeners>
                                        <Change Handler="applyFilter();" Buffer="250" />
                                    </Listeners>     
                                   
                                </ext:ComboBox>
                         
                            </HeaderItems>
                                
                                </ext:Column>
                              
                 
    
    
                                 <ext:Column runat="server" Text="% space" Align="Center" Width="320">
                                 <Renderer Fn="renderColumnChart" />
                                 
                                 </ext:Column>
                                   <ext:Column ID="Column9" runat="server" Text="Capacity<br>(GB)" DataIndex="CAPACITY" Align="Center" Width="100"
                              />
                                   <ext:Column ID="Column10" runat="server" Text="Used<br>(GB)" DataIndex="USED" Align="Center" Width="100"
                                 />
                                   <ext:Column ID="Column11" runat="server" Text="Free<br>(GB)" DataIndex="FREE" Width="100" Align="Center"
                               />
                                   <ext:Column ID="Column12" runat="server" Text="Expected<br>Max Date" DataIndex="EXPECTED_MAX_DATE" Width="170"  Align="Center"
                                 >
                                
                                 <Renderer Fn="RenderColor" />
                                   <HeaderItems>        
                                                  
                                                   <ext:DateField ID="dtFilter" runat="server" Editable="false">
                                        <Listeners>
                                            <Change Handler="applyFilter();" Buffer="250" />
                                        </Listeners>
                                        <Plugins>
                                            <ext:ClearButton ID="ClearButton3" runat="server" />
                                        </Plugins>
                                    </ext:DateField>
                                        
                             
                         
                            </HeaderItems>
                                </ext:Column>
                                
                                 <ext:Column ID="Column17" runat="server" Text="% Growth<br>Rate" DataIndex="PERC_GROWTH" Width="100" Align="Center">
    
                               <Renderer Handler="return Ext.String.format(record.get('PERC_GROWTH') != 0 ?record.get('PERC_GROWTH').toFixed(2)+'%'  : '0 %') "/>
    
                             
                                 </ext:Column>
                              
                               
                              
                                   <ext:Column ID="Column15" runat="server" Text="Peak<br>(GB)" DataIndex="PEAK" Width="90" Align="Center"
                                />
                                <ext:Column ID="Column25" runat="server" Text="Last Week<br>Peak<br>(GB)" DataIndex="LAST_WEEK_PEAK" Width="100" Align="Center"
                                />
    
                                 
                                
                                   <ext:Column ID="Column16" runat="server" Text="Date of<br>Peak" DataIndex="PEAK_DATE" Width="90"  Align="Center"
                                >
                                  <Renderer Fn="TrimText" />
                                </ext:Column>
                                <ext:Column ID="Column18" runat="server" Text="Last 7 Days<br>Increase<br>(GB)" DataIndex="LAST_7_DAY_INCR" Width="120" Align="Center"
                                />
                                   <ext:Column ID="Column21" runat="server" Text="Capacity Needed<br>for 6 Months<br>(GB)" DataIndex="CAPACITY_NEED_6_MON" Width="160" Align="Center"
                                 >
                                 <Renderer Handler="return Ext.String.format(record.get('CAPACITY_NEED_6_MON').toFixed(2)) "/>
                                 </ext:Column>
    
                                 <ext:Column ID="Column2" runat="server" Text="Used in<br>1 Month<br>(GB)" DataIndex="USED_1_MON" Width="120" Align="Center"
                                />
    
                                 <ext:Column ID="Column70" runat="server" Text="Used in<br>6 Months<br>(GB)" DataIndex="USED_6_MON" Width="110" Align="Center"
                                />
    
                                <ext:Column ID="Column14" runat="server" Text="# Weeks Of<br>Data" DataIndex="WEEKS_OF_DATA" Width="120" Align="Center"
                                />
                                   
                                    <ext:Column ID="Column13" runat="server" Text="Last Updated" DataIndex="LAST_UPDATED" Width="140" Align="Center"
                                 >
                                  <Renderer Fn="TrimText" /></ext:Column>
                                   
                               
                                  
                          
                        </Columns>
                    </ColumnModel>
                    <SelectionModel>
                    
                        <ext:RowSelectionModel ID="CellSelectionModel2" runat="server" EnableTextSelection="true" >
                     <DirectEvents>
                   
                     </DirectEvents>
                        </ext:RowSelectionModel>
                    </SelectionModel>
                    <View>
                        <ext:GridView ID="GridView3" runat="server" EnableTextSelection ="true">
                           
                        </ext:GridView>
                    </View>
                   
                </ext:GridPanel>
    Javascript
    -----------

    
     var renderColumnChart = function (v, meta, r) 
            {
                var store = Ext.create('Ext.data.JsonStore', {
                    fields: ['name', 'data'],
                    data: [
            { 'name': 'metric one', 'data': 5 }
        ]
                });
    
    
                if (r.chart) {
                    r.chart.destroy();
                }
                    r.chart =
         new Ext.chart.Chart(Ext.create('Ext.chart.Chart', {
            
             width: 250,
             height: 100,
             animate: true,
             store: store,
             axes: [{
                 type: 'Numeric',
                 position: 'bottom',
                 fields: ['data'],
                 label: {
                     renderer: Ext.util.Format.numberRenderer('0,0')
                 },
                 title: false,
                 grid: false,
                 minimum: 0
             }, {
                 type: 'Category',
                 position: 'left',
                 fields: ['name'],
                 title: false
             }],
             series: [{
                 type: 'bar',
                 axis: 'bottom',
                 highlight: true,
                 tips: {
                     trackMouse: true,
                     width: 100,
                     height: 35,
                     renderer: function (storeItem, item) {
                         this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data') + ' views');
                     }
                 },
                 label: {
                     display: 'insideEnd',
                     field: 'data',
                     renderer: Ext.util.Format.numberRenderer('0'),
                     orientation: 'horizontal',
                     color: '#333',
                     'text-anchor': 'middle'
                 },
                 xField: 'name',
                 yField: 'data'
             }]
         }));
    
       var id = Ext.id();
      meta.attr = 'id="' + id +'"';
      r.chart.render.defer(1, r.chart, [id]);
      return '';
            }
    Attached Thumbnails Click image for larger version. 

Name:	Grid with Chart.png 
Views:	39 
Size:	53.1 KB 
ID:	10151  
    Last edited by Daniil; Apr 29, 2014 at 3:11 AM. Reason: [CLOSED]
  2. #2
    Hi @Sowjanya,

    This is a wrong statement:
    new Ext.chart.Chart(Ext.create('Ext.chart.Chart', {
    You should use either
    new Ext.chart.Chart({ ... });
    or
    Ext.create('Ext.chart.Chart', { ... });
    but not both at the same time.

    The next problem is
    r.chart.render.defer(1, r.chart, [id]);
    Please see item #40
    40. Now ExtJS no longer overrides or extends native JavaScript classes. ...
    here
    https://examples2.ext.net/#/Getting_...AKING_CHANGES/
  3. #3
    Quote Originally Posted by Daniil View Post
    Hi @Sowjanya,

    This is a wrong statement:
    new Ext.chart.Chart(Ext.create('Ext.chart.Chart', {
    You should use either
    new Ext.chart.Chart({ ... });
    or
    Ext.create('Ext.chart.Chart', { ... });
    but not both at the same time.

    The next problem is
    r.chart.render.defer(1, r.chart, [id]);
    Please see item #40

    here
    https://examples2.ext.net/#/Getting_...AKING_CHANGES/
    Hi,

    Thanks for the reply, but sorry that did not work either...so I had to use native HTML components to achieve this
    This is what i did:, just in case it is helpful to others:
    http://www.codeproject.com/Articles/...ntal-Bar-Chart

Similar Threads

  1. Replies: 1
    Last Post: Dec 06, 2012, 3:27 PM
  2. Grid Column Renderer
    By karthik.arian03 in forum 1.x Help
    Replies: 8
    Last Post: Feb 11, 2011, 6:34 AM
  3. [CLOSED] number renderer in grid column
    By Vasudhaika in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Dec 05, 2010, 10:01 AM
  4. [CLOSED] Grid Render Cell is empty
    By sharif in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Feb 28, 2010, 2:19 AM
  5. [CLOSED] Render (or prepare) grid cell
    By GmServizi in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Nov 24, 2009, 7:54 AM

Posting Permissions