[CLOSED] store getChangedData not returning inserted rows

  1. #1

    [CLOSED] store getChangedData not returning inserted rows

    I have programed an example of what is going on. I setup store rows on page_load as if they were manually inserted by user.
    I know expect to process this inserted rows when user clicks save button. Problem is I receive empty string instead of inserted rows. This behaviour does not occurs with older versions of ext.net.

    Below follows example code.

    <%@ Page Language="VB" %>
    
    <!DOCTYPE html>
    
    <script>
        var ItemId = null;
        var itemRecord = null;
    
        function ItemClick(item, record, node, index, e) {
            ItemId = record.data.ItemNum
        }
    
        var FieldChanged = function (e) {
    
        }
    
    
    </script>
    <script runat="server">
    
        Protected Overloads Sub Page_Load(sender As Object, e As System.EventArgs)
            If Not Ext.Net.X.IsAjaxRequest Then
                For i As Integer = 1 To 3
                    itemStore.Add(New With {
                                      .ItemNum = i, _
                                      .KeyCode = i, _
                                      .ProductName = "Product " & i.ToString, _
                                      .Quantity = 1, _
                                      .ListPriceAmt = 100, _
                                      .DiscountPer = 0 _
                                      })
                   
                Next
              
            End If
        End Sub
    
        Protected Sub SaveDocument(sender As Object, e As DirectEventArgs)
            Dim sql As String = String.Empty
            Try
                Dim itemchanges As Newtonsoft.Json.Linq.JObject
                itemchanges = Newtonsoft.Json.Linq.JObject.Parse(IIf(e.ExtraParams("itemchanges") = "", "{}", e.ExtraParams("itemchanges")))
                If itemchanges("Created") IsNot Nothing Then
                    For Each o As Newtonsoft.Json.Linq.JObject In itemchanges("Created")
                    Next
                End If
            Catch ex As Exception
                e.Success = False
                e.ErrorMessage = ex.Message
                Exit Sub
            End Try
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <extnet:ResourceManager ID="ResourceManager1" runat="server" />
                <extnet:Store ID="itemStore" runat="server" AutoLoad="False">
                    <Model>
                        <extnet:Model ID="model1" runat="server" IDProperty="ItemNum">
                            <Fields>
                                <extnet:ModelField Name="ItemNum" ModelName="ItemNum" Type="Int" />
                                <extnet:ModelField Name="ProductCode" ModelName="ProductCode" Type="String" />
                                <extnet:ModelField Name="ProductName" ModelName="ProductName" Type="String" />
                                <extnet:ModelField Name="Quantity" ModelName="Quantity" Type="Float" />
                                <extnet:ModelField Name="ListPriceAmt" ModelName="ListPriceAmt" Type="Float" />
                                <extnet:ModelField Name="DiscountPer" ModelName="DiscountPer" Type="Float" />
                                <extnet:ModelField Name="ExtendedPriceAmt" ModelName="ExtendedPriceAmt" Type="Float">
                                    <Convert Handler="return record.data.Quantity * record.data.ListPriceAmt * (1 - record.data.DiscountPer /100)" />
                                </extnet:ModelField>
                            </Fields>
    
                        </extnet:Model>
                    </Model>
    
                </extnet:Store>
                <extnet:Viewport ID="Viewport1" runat="server" Layout="BorderLayout">
                    <Items>
                        <extnet:GridPanel ID="ItemsGrid" runat="server" Title="Items del Documento"
                            Icon="ApplicationEdit" Layout="BorderLayOut" Flex="1" Region="Center" StoreID="itemStore">
                            <ColumnModel ID="ColumnModel1" runat="server">
                                <Columns>
                                    <extnet:Column ID="Column8" runat="server" DataIndex="ProductName" Text="Descripcion"
                                        MinWidth="150" Flex="1" />
                                    <extnet:WidgetColumn ID="NumberColumn1" runat="server" DataIndex="Quantity" Text="Cantidad" Width="80" Editor="True">
                                        <Widget>
                                            <extnet:NumberField runat="server" ID="fQuantity" AllowBlank="False" MinValue="0">
                                                <Listeners>
                                                    <Change Fn="FieldChanged" />
                                                </Listeners>
                                            </extnet:NumberField>
                                        </Widget>
                                        <Listeners>
                                        </Listeners>
                                    </extnet:WidgetColumn>
                                    <extnet:NumberColumn ID="Column10" runat="server" DataIndex="ListPriceAmt" Text="Precio x Unidad" Width="100" />
                                    <extnet:WidgetColumn ID="NumberColumn3" runat="server" DataIndex="DiscountPer" Text="% Dscto" Width="70" Editor="true">
                                        <Widget>
                                            <extnet:NumberField ID="NumberField1" runat="server" AllowBlank="true" MinValue="0" MaxValue="100">
                                                <Listeners>
                                                    <Change Fn="FieldChanged" />
                                                </Listeners>
                                            </extnet:NumberField>
                                        </Widget>
                                        <Listeners>
                                        </Listeners>
                                    </extnet:WidgetColumn>
                                    <extnet:NumberColumn ID="NumberColumn2" runat="server" DataIndex="ExtendedPriceAmt" Text="Total" Width="100" />
                                </Columns>
                            </ColumnModel>
                            <SelectionModel>
                                <extnet:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
                                </extnet:RowSelectionModel>
                            </SelectionModel>
                            <Listeners>
                                <ItemClick Fn="ItemClick" />
                            </Listeners>
                            <Buttons>
                                                   <extnet:Button ID="Button3" runat="server" Text="Save" Icon="DatabaseSave">
                            <DirectEvents>
                                <Click OnEvent="SaveDocument">
                                    <ExtraParams>
                                        <extnet:Parameter Name="itemchanges" Value="#{itemStore}.getChangedData()" Mode="Raw" Encode="true" />
                                    </ExtraParams>
                                    <EventMask ShowMask="True" />
    
                                </Click>
                            </DirectEvents>
                        </extnet:Button>
                            </Buttons>
                        </extnet:GridPanel>
                    </Items>
                </extnet:Viewport>
            </div>
        </form>
    </body>
    </html>
    Last edited by Daniil; Apr 07, 2015 at 1:19 PM. Reason: [CLOSED]
  2. #2
    Hi @jstifel,

    If you set a record's IDProperty="ItemNum" that you do by .ItemNum = i, _, then the record is not considered as a new one. The IDProperty field is consider as a server side identity.

    There is a related comment here:
    http://docs.sencha.com/extjs/5.1/5.1...operty-phantom

    If you remove .ItemNum = i, _, then you will see those records returned by .getChangedData() call.
  3. #3
    It worked. Thanks.
    You can close the case now.

Similar Threads

  1. Replies: 7
    Last Post: Nov 08, 2013, 3:12 AM
  2. [CLOSED] store GetChangedData does not return id field
    By jchau in forum 2.x Legacy Premium Help
    Replies: 3
    Last Post: Sep 30, 2013, 8:43 PM
  3. [CLOSED] Store GetChangedData and Phantom record confusion
    By jchau in forum 2.x Legacy Premium Help
    Replies: 5
    Last Post: Mar 21, 2013, 7:12 AM
  4. [CLOSED] grid.getRowsValues(false) is returning all rows
    By LeeTheGreek in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Jan 26, 2010, 12:20 PM
  5. [CLOSED] GridView select only edited or inserted rows
    By GmServizi in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 06, 2009, 4:46 AM

Tags for this Thread

Posting Permissions