Apr 06, 2015, 12:35 AM
[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.
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]