Total row for gridpanel not show correctlly

  1. #1

    Total row for gridpanel not show correctlly

    I added dockeditem but shows initial text bellow page tool bar,
    but I want it show the correct result for each date group,
    please try the sample

    <%@ Page Language="C#" %>
    
    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Xml" %>
    <%@ Import Namespace="System.Collections.Generic" %>
    <%@ Import Namespace="System.Linq" %>
    <%@ Import Namespace="System.Net" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
    
                GridStore.DataSource = new object[]
                {
                    new object[] {"2016-06-27", "1", "Ricky", "1"},
                    new object[] {"2016-06-27", "2", "Ricky", "4"},
                    new object[] {"2016-06-28", "3", "Ricky", "7"},
                    new object[] {"2016-06-29", "4", "Ricky", "1"},
                    new object[] {"2016-06-29", "5", "Ricky", "3"},
                    new object[] {"2016-06-29", "6", "Ricky", "2"}
                };
    
                GridStore.DataBind();
            }
        }
    
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10"/>
    <script type="text/javascript" src="/js/ts.js"></script>
    <link href="/css/ts.css" type="text/css" rel="stylesheet"/>
        <style>
            .x-grid-body .x-grid-cell-Cost {
                background-color : #f1f2f4;
            }
    
            .x-grid-row-summary .x-grid-cell-Cost .x-grid-cell-inner{
                background-color : #e1e2e4;
            }
    
            .task .x-grid-cell-inner {
                padding-left: 15px;
            }
    
            .x-grid-row-summary .x-grid-cell-inner {
                font-weight: bold;
                font-size: 11px;
                background-color : #f1f2f4;
            }
    
            .total-field{
                background-color : #fff;
                padding          : 0px 1px 1px 1px;
                margin-right     : 1px;
                position: absolute;
            }
    
            .total-field .x-form-display-field{
                font-weight      : bold !important;
                border           : solid 1px silver;
                font-size        : 11px;
                font-family      : tahoma, arial, verdana, sans-serif;
                color            : #000;
                padding          : 0px 0px 0px 5px;
                height           : 22px;
                margin-top       : 0px;
                padding-top      : 3px;
            }
        </style>
    
        <script>
            var updateTotal = function (grid, container) {
                if (!grid.view.rendered) {
                    return;
                }
    
                var field,
                    value,
                    width,
                    c,
                    cs = grid.headerCt.getVisibleGridColumns();
    
                container.suspendLayout = true;
    
                for (var i = 0; i < cs.length; i++) {
                    c = cs[i];
    
                    if (c.summaryType) {
                        value = App.Group1.getSummary(grid.store, c.summaryType, c.dataIndex);
                    } else {
                        value = "-";
                    }
    
                    field = container.down('component[name="'+c.dataIndex+'"]');
    
                    container.remove(field, false);
                    container.insert(i, field);
                    width = c.getWidth();
                    field.setWidth(width - 1);
    
                    var r = c.summaryRenderer || simpleRenderer;
                    field.setValue(r(value, {}, c.dataIndex));
                }
    
                container.items.each(function (field) {
                    var column = grid.headerCt.down('component[dataIndex="'+field.name+'"]');
                    field.setVisible(column.isVisible());
                });
    
                container.suspendLayout = false;
                container.updateLayout();
            };
    
            var simpleRenderer = function (v) {
                return v;
            };
    
            var totalCost = function (records) {
                var i = 0,
                    length = records.length,
                    total = 0,
                    record;
    
                for (; i < length; ++i) {
                    record = records[i];
                    total += record.get('Estimate') * record.get('Rate');
                }
    
                return total;
            };
        </script>
    
    </head>
    <body>
    <form runat="server">
        <ext:ResourceManager runat="server" DirectMethodNamespace="MyCompany" >
        </ext:ResourceManager>
            <ext:GridPanel
                runat="server"
                ID="TimeSheetGrid"
                ColumnWidth="1"
                EnableColumnHide="false"
                >
                <Store>
                    <ext:Store 
                        ID="GridStore" 
                        runat="server"
                        ShowWarningOnFailure="false"
                        >
                        <Model>
                            <ext:Model runat="server" Name="TimeSheetModel" >
                                <Fields>
                                    <ext:ModelField Name="CreateDate" Type ="Date" />
                                    <ext:ModelField Name="Name" Type="String" />
                                    <ext:ModelField Name="TSID" />
                                    <ext:ModelField Name="WorkingTime" Type="float"/>
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel>
                    <Columns>
                        <ext:SummaryColumn
                            runat="server"
                            Text="Date"
                            Sortable="true"
                            DataIndex="CreateDate"
                            SummaryType="Count"
                            >
                            <Renderer Format="Date" FormatArgs="'Y-m-d'" />
                            <SummaryRenderer Fn="Ext.util.Format.dateRenderer('Y-m-d')" />
                            <Editor>
                                <ext:DateField runat="server" Format="yyyy-MM-dd" />
                            </Editor>                                         
                            <Filter>
                              <ext:DateFilter BeforeText="End" AfterText="Star" OnText="" />
                            </Filter>
                        </ext:SummaryColumn>
                        <ext:Column runat="server" Text="User ID" DataIndex="ADCN"  Hidden="true" />
                        <ext:SummaryColumn
                            runat="server"
                            Text="Name"
                            Sortable="true"
                            DataIndex="Name"
                            SummaryType="Count"
                            Width="80"
                            >
                            <SummaryRenderer Fn="Ext.util.Format.format()" />
                            <Editor>
                                <ext:TextField runat="server" />
                            </Editor>
                            <Filter>
                                <ext:StringFilter />
                            </Filter>
                        </ext:SummaryColumn>
                        <ext:SummaryColumn
                            runat="server"
                            Text="WorkingTime"
                            DataIndex="WorkingTime" 
                            SummaryType="Sum"
                            Width="80"
                            >
                             <Filter>
                               <ext:NumberFilter />
                             </Filter>
                        </ext:SummaryColumn>
                    </Columns>
                </ColumnModel>
                <Listeners>
                    <ColumnResize Handler="updateTotal(this, #{TimeSheetContainer});" />
                    <ColumnMove Handler="updateTotal(this, #{TimeSheetContainer});" />
                    <ColumnHide Handler="updateTotal(this, #{TimeSheetContainer});" />
                </Listeners>
                <View>
                    <ext:GridView runat="server" TrackOver="true" >
                        <Listeners>
                            <Refresh Handler="updateTotal(this.panel, #{TimeSheetContainer});" Delay="100" />
                        </Listeners>
                    </ext:GridView>
                </View>
                <Features>
                    <ext:GroupingSummary
                        ID="TimeSheetGroup"
                        runat="server"
                        GroupHeaderTplString="{name}"
                        HideGroupedHeader="true"
                        EnableGroupingMenu="false" />
                </Features>
                <DockedItems>
                    <ext:Container
                        ID="TimeSheetContainer"
                        runat="server"
                        Layout="HBoxLayout"
                        Dock="Bottom"
                        StyleSpec="margin-top:2px;">
                        <Defaults>
                            <ext:Parameter Name="height" Value="24" />
                        </Defaults>
                        <Items>
                            <ext:DisplayField ID="CreateDateDock" runat="server" Name="CreateDate" Cls="total-field" Text="-" />
                            <ext:DisplayField ID="NameDock" runat="server" Name="Name" Cls="total-field" Text="-" />
                        </Items>
                    </ext:Container>
                </DockedItems>
                <BottomBar>
                    <ext:PagingToolbar runat="server" >
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  2. #2
    solved by add total row in plugin

Similar Threads

  1. [CLOSED] Show total records in combobox
    By Marcelo in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: May 27, 2013, 5:12 PM
  2. [CLOSED] Cumulative Total/ Running Total Column in Grid Panel
    By hemantpatil in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Jan 03, 2013, 10:41 AM
  3. Total row not show at right column
    By GolineTidus in forum 2.x Help
    Replies: 4
    Last Post: Nov 20, 2012, 2:19 PM
  4. [CLOSED] How to set Paging toolbar total page count and total records?
    By rnachman in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: Sep 10, 2012, 4:38 PM
  5. [CLOSED] store total record count assign (e.Total)
    By majestic in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Jan 23, 2012, 12:13 PM

Posting Permissions