Help with JSON and Dates, driving me crazy, sample included

Page 1 of 2 12 LastLast
  1. #1

    Help with JSON and Dates, driving me crazy, sample included

    Guys, please run my sample and tell me why is the GridPanel highlighting the date column when the data did not change, I have tried millions of tricks but nothing seems to fix this.
    Thank you

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                this.Store1.DataSource = this.Data;
                this.Store1.DataBind();
            }
        }
    
    
        protected void btSerialize_Click(object sender, DirectEventArgs e)
        {
            DateTime dte = new DateTime(2011, 7, 29, 0, 0, 0);
            GridPanel1.AddScript("{0}.getSelectionModel().getSelected().set('{1}', {2});", GridPanel1.ClientID, "created", JSON.Serialize(dte));  
        }
    
    
        private object[] Data
        {
            get
            {
                DateTime dte = new DateTime(2011, 7, 29, 0, 0, 0);
                
                return new object[]
                {
                    new object[] { dte, "3m Co", 71.72, 0.02, 0.03, "9/1 12:00am" },
                    new object[] { dte, "Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am" },
                    new object[] { dte, "Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am" },
                    new object[] { dte, dte, "American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { dte, "American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am" },
                    new object[] { dte, "AT&T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am" },
                    new object[] { dte, "Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am" },
                    new object[] { dte, "Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am" },
                    new object[] { dte, "Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am" },
                    new object[] { dte, "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am" },
                    new object[] { dte, "Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am" },
                    new object[] { dte, "General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am" },
                    new object[] { dte, "General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am" },
                    new object[] { dte, "Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am" },
                    new object[] { dte, "Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am" },
                    new object[] { dte, "Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am" },
                    new object[] { dte, "International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am" },
                    new object[] { dte, "Johnson & Johnson", 64.72, 0.06, 0.09, "9/1 12:00am" },
                    new object[] { dte, "JP Morgan & Chase & Co", 45.73, 0.07, 0.15, "9/1 12:00am" },
                    new object[] { dte, "McDonald\"s Corporation", 36.76, 0.86, 2.40, "9/1 12:00am" },
                    new object[] { dte, "Merck & Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am" },
                    new object[] { dte, "Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am" },
                    new object[] { dte, "Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am" },
                    new object[] { dte, "The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am" },
                    new object[] { dte, "The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am" },
                    new object[] { dte, "The Procter & Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { dte, "United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am" },
                    new object[] { dte, "Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am" },
                    new object[] { dte, "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am" }
                };
            }
        }
    </script>
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Simple Array Grid - Ext.NET Examples</title>
    </head>
    <body>
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        
        <h1>Simple Array Grid</h1>
        
        <ext:GridPanel 
            ID="GridPanel1"
            runat="server" 
            StripeRows="true"
            Title="Array Grid" 
            TrackMouseOver="true"
            Width="600" 
            Height="350"
            AutoExpandColumn="company">
            <Store>
                <ext:Store ID="Store1" runat="server">
                    <Reader>
                        <ext:ArrayReader>
                            <Fields>
                                <ext:RecordField Name="created" Type="Date" DateFormat="yyyy-MM-ddTH:mm:ss" />
                                <ext:RecordField Name="company" />
                                <ext:RecordField Name="price" Type="Float" />
                                <ext:RecordField Name="change" Type="Float" />
                                <ext:RecordField Name="pctChange" Type="Float" />
                                <ext:RecordField Name="lastChange" Type="Date" DateFormat="M/d hh:mmtt" />
                            </Fields>
                        </ext:ArrayReader>
                    </Reader>
                </ext:Store>
            </Store>
            <ColumnModel ID="ColumnModel1" runat="server">
                <Columns>
                    <ext:DateColumn Header="Created" DataIndex="created" />
                    <ext:Column ColumnID="Company" Header="Company" DataIndex="company" />
                    <ext:Column Header="Price" DataIndex="price">                  
                        <Renderer Format="UsMoney" />
                    </ext:Column>
                    <ext:DateColumn Header="Last Updated" DataIndex="lastChange" />
                </Columns>
            </ColumnModel>
            <SelectionModel>
                <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
            </SelectionModel>
            <BottomBar>
                <ext:Toolbar runat="server">
                    <Items>
                        <ext:Button runat="server" ID="btSerialize" Text="Apply JSON Serialized Date" Icon="Disk">
                            <DirectEvents>
                                <Click OnEvent="btSerialize_Click">
                                    <EventMask ShowMask="true" />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </BottomBar>
        </ext:GridPanel>
        <ext:Label runat="server" Text="Update grid with new(same) data using the same data will highlight the date cell."></ext:Label>
    </body>
    </html>
  2. #2
    Hi,

    It seems I can't reproduce the problem.

    Please provide a screen-shot what you mean.
  3. #3
    Please clarify is there the same problem?
    http://forums.ext.net/showthread.php?14814
  4. #4
    Quote Originally Posted by Daniil View Post
    Please clarify is there the same problem?
    http://forums.ext.net/showthread.php?14814
    HI, yes it is the same problem, the date doesn't change but the grid highlights it as changed.
    THanks
  5. #5
    Ok.

    Now I'm expecting any update on this:

    Quote Originally Posted by Daniil View Post

    It seems I can't reproduce the problem.

    Please provide a screen-shot what you mean.
  6. #6
    Quote Originally Posted by Daniil View Post
    Ok.

    Now I'm expecting any update on this:
    Thanks for the kind support, Daniil, when you launch the sample code and click on the button it's setting the date on the selected row to the very same date thus I didn't expect it to highlight the date cell on the selected row because the date didn't change, it's supposed to highlight only the cells that changed the value, right? Anyways I found the solution, to use JSON Alternative Converters, as described below. I hope that anyone that faces this issue in the future will be able to find this post easily.
    Thank you

    Sample
    DateTime VALUE = new DateTime(2011, 7, 29, 0, 0, 0);
    if (VALUE is DateTime)Grid.AddScript("{0}.getSelectionModel().getSelected().set('{1}', {2});", Grid.ClientID, Fields[i], JSON.Serialize(VALUE, JSON.AltConverters));
    else
    Grid.AddScript("{0}.getSelectionModel().getSelected().set('{1}', {2});", Grid.ClientID, Fields[i], JSON.Serialize(VALUE));
  7. #7
    Hmm, I still can't to reproduce the problem, in other words - I can't get a "dirty flag".

    If it's still actual for you, please provide the locale you use: PC and Page locales. I think the problem can be depend on a locale.
  8. #8
    Quote Originally Posted by Daniil View Post
    Hmm, I still can't to reproduce the problem, in other words - I can't get a "dirty flag".

    If it's still actual for you, please provide the locale you use: PC and Page locales. I think the problem can be depend on a locale.
    I see, in that case I expected JSON to take care of the locale settings, here's my .NET locale info:

    DateTimeFormat: M/d/yyyy
    DisplayName: English (United States)
    EnglishName: English (United States)
    LCID: 1033
    Name: en-US
    NativeName: English (United States)
    NumberFormat: $
    ThreeLetterISOLanguageName: eng
    ThreeLetterWindowsLanguageName: ENU
    TwoLetterISOLanguageName: en
  9. #9
    Thanks for the details.

    Strange, but I still can't see a "dirty" flag when select a row and click on the button.
  10. #10
    Quote Originally Posted by Daniil View Post
    Thanks for the details.

    Strange, but I still can't see a "dirty" flag when select a row and click on the button.
    I appreciate your assistance, Daniil. I trust you when you say you can't see it, thankfully I have found a workaround using JSON alternative converters.
    Best Regards
Page 1 of 2 12 LastLast

Similar Threads

  1. [CLOSED] Dates & Json & ComboBoxes
    By PhilG in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: May 24, 2012, 2:45 PM
  2. Replies: 1
    Last Post: Nov 15, 2011, 4:48 PM
  3. Crazy validator
    By CarWise in forum Bugs
    Replies: 1
    Last Post: Jan 10, 2011, 10:41 AM
  4. Replies: 3
    Last Post: May 11, 2010, 4:47 AM
  5. Json included in coolite assembly
    By oskarni in forum Open Discussions
    Replies: 6
    Last Post: Feb 06, 2009, 1:50 PM

Posting Permissions