[FIXED] [#1531] [4.4.0] Calculated Field Persist Property

  1. #1

    [FIXED] [#1531] [4.4.0] Calculated Field Persist Property

    I have a calculated field that I have set Persist=true, but this setting doesn't get applied and the field ends up with Persist=false because this is the default for calculated fields. The extjs docs say that a calculated field has persist=false by default, but it should be possible to override this setting.

    Please see the following example, and try running "App.GridPanel1.store.getFieldByName("calculated") .persist" from F12:

    <%@ Page Language="C#" %>
    
    <script runat="server">
    
        /// <summary>
        /// Possible arguments:
        ///     - string action
        ///     - string action, Dictionary<string, object> extraParams
        ///     - string action, Dictionary<string, object> extraParams, object serviceParams
        /// </summary>
        /// <returns></returns>
        [DirectMethod]
        public static object BindData()
        {
            return Data;
        }
    
        private static object[] Data
        {
            get
            {
                DateTime now = DateTime.Now;
    
                return new object[]
                {
                    new object[] { "3m Co", 71.72, 0.02, 0.03, now },
                    new object[] { "Alcoa Inc", 29.01, 0.42, 1.47, now },
                    new object[] { "Altria Group Inc", 83.81, 0.28, 0.34, now }
                };
            }
        }
    </script>
    
    <!DOCTYPE html>
    
    <html>
    <head runat="server">
        <title>PageProxy with DirectMethod - Ext.NET Examples</title>
        <link href="/resources/css/examples.css" rel="stylesheet" />
    
        <script>
            var template = '<span style="color:{0};">{1}</span>';
    
            var change = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value);
            };
    
            var pctChange = function (value) {
                return Ext.String.format(template, (value > 0) ? "green" : "red", value + "%");
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <h1>PageProxy with DirectMethod</h1>
    
            <ext:GridPanel
                ID="GridPanel1"
                runat="server"
                Title="Array Grid"
                Width="700"
                Height="310" BufferedRenderer="true" LeadingBufferZone="10" NumberFromEdge="10"  >
                <Store> 
                    <ext:Store ID="Store1" runat="server" PageSize="10">
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="company" />
                                    <ext:ModelField Name="price" Type="Float" />
                                    <ext:ModelField Name="change" Type="Float" />
                                    <ext:ModelField  Name="calculated" Persist="true">
                                        <Calculate Handler="return data.price * 2;"></Calculate>
                                    </ext:ModelField>
                                    <ext:ModelField Name="pctChange" Type="Float" />
                                    <ext:ModelField Name="lastChange" Type="Date" />
    
                                </Fields>
                            </ext:Model>
                        </Model>
                        <Proxy>
                            <ext:PageProxy DirectFn="App.direct.BindData">
                                <Reader>
                                    <ext:ArrayReader />
                                </Reader>
                            </ext:PageProxy>
                        </Proxy>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:RowNumbererColumn runat="server" Width="35" />
                        <ext:Column runat="server" Text="Company" DataIndex="company" Flex="1">
                        </ext:Column>
                        <ext:Column runat="server" Text="Price" Width="75" DataIndex="price">
                            <Renderer Format="UsMoney" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" Width="75" DataIndex="change">
                            <Renderer Fn="change" />
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" Width="75" DataIndex="calculated">
                        </ext:Column>
                        <ext:Column runat="server" Text="Change" Width="75" DataIndex="pctChange">
                            <Renderer Fn="pctChange" />
                        </ext:Column>
                        <ext:DateColumn runat="server" Text="Last Updated" Width="85" DataIndex="lastChange" Format="H:mm:ss" />
                    </Columns>
                </ColumnModel>
                
            </ext:GridPanel>
        </form>
    </body>
    </html>
  2. #2
    Hello @tylert!

    Thank you for the clean report! We promptly fixed it. Same drill from our previous thread, on the v4.4.0 branch. Your feedback will be greatly appreciated!
    Fabrício Murta
    Developer & Support Expert

Similar Threads

  1. Replies: 1
    Last Post: Jan 30, 2014, 5:38 AM
  2. CheckBox field checked property problem
    By nedimkeskin in forum 2.x Help
    Replies: 4
    Last Post: May 29, 2013, 3:49 AM
  3. [CLOSED] ext:GridPanel: Calculated page size
    By supera in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: Apr 27, 2012, 4:13 PM
  4. [CLOSED] [1.0] Composite field FieldLabel property
    By tansu in forum 1.x Legacy Premium Help
    Replies: 21
    Last Post: Aug 09, 2010, 10:58 AM

Posting Permissions