Batch Update not getting updated data while using IsComplex=true (Urgent)

  1. #1

    Batch Update not getting updated data while using IsComplex=true (Urgent)

    Hi,

    Please see following Example, in which I have used IsComplex="true" and Batch Update.
    But I am not getting updated data in code behind.
    e.g. After loading page, press Refresh then I am changing first row's pcs to 3 (new value) but after save click it show me 1 (which is old value)
    How can I get updated new data?

    And While adding new record with value StoneID 5, pcs=2,Cts=2 , then in Save, I am getting null of cStone Object. How can I get inserted record in code behind in this case.?

    Runnable Sample here
    ------------------------------

    <%@ Page Language="C#" %>

    <%@ Import Namespace="System.Collections.Generic" %>

    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

    <script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public class CustomStone
    {
    public int? Pcs { get; set; }
    public decimal? Cts { get; set; }
    public long StoneID { get; set; }

    public CustomStone()
    {
    Pcs = 0; Cts = 0; StoneID = 0;
    }
    }

    public class DirectCustomClass
    {
    public CustomStone cStone { get; set; }
    public string DisplayStoneID { get; set; }
    public string DoNotUse { get; set; }
    }


    protected void btnRefersh_Click(object sender, EventArgs e)
    {

    List<DirectCustomClass> lstStone = new List<DirectCustomClass>();
    lstStone.Add(new DirectCustomClass { DisplayStoneID = "x1", cStone = new CustomStone() { StoneID = 1, Pcs = 1, Cts = 2 } });
    lstStone.Add(new DirectCustomClass { DisplayStoneID = "x2", cStone = new CustomStone() { StoneID = 2, Pcs = 1, Cts = 9 } });
    lstStone.Add(new DirectCustomClass { DisplayStoneID = "x3", cStone = new CustomStone() { StoneID = 3, Pcs = 1, Cts = 8 } });
    lstStone.Add(new DirectCustomClass { DisplayStoneID = "x4", cStone = new CustomStone() { StoneID = 4, Pcs = 1, Cts = 7 } });
    StoreStone.DataSource = lstStone.ToList();
    StoreStone.DataBind();
    }

    protected void btnSave_Click(object sender, DirectEventArgs e)
    {
    ChangeRecords<DirectCustomClass> stoneTransferDet = new StoreDataHandler(e.ExtraParams["Stone"]).BatchObjectData<DirectCustomClass>();
    foreach (DirectCustomClass dcc in stoneTransferDet.Updated)
    {
    new MessageBox().Show(new MessageBoxConfig()
    {
    Title = "Pcs Value",
    Message = "New Pcs=" + dcc.cStone.Pcs.Value.ToString(),
    Icon = MessageBox.Icon.INFO,
    Closable = true,
    Buttons = MessageBox.Button.OK
    });
    //base.ShowMessage(dcc.cStone.Pcs.Value.ToString(), MessageBox.Icon.INFO);
    }
    foreach (DirectCustomClass dcc in stoneTransferDet.Created)
    {
    new MessageBox().Show(new MessageBoxConfig()
    {
    Title = "Pcs Value",
    Message = "New Pcs=" + dcc.cStone.Pcs.Value.ToString(),
    Icon = MessageBox.Icon.INFOClick image for larger version. 

Name:	screen.jpg 
Views:	83 
Size:	56.0 KB 
ID:	5635,
    Closable = true,
    Buttons = MessageBox.Button.OK
    });
    }
    }

    </script>

    <!DOCTYPE html>

    <html>
    <head id="Head1" runat="server">
    <title>Ext.NET Examples</title>

    <script>

    </script>
    </head>
    <body>
    <form id="Form1" runat="server">
    <ext:ResourceManager ID="ResourceManager1" runat="server" />

    <ext:GridPanel ID="GridStone" runat="server" IDMode="Static" Title="Testing Grid" Height="300">
    <Store>
    <ext:Store ID="StoreStone" runat="server" IDMode="Static">
    <Model>
    <ext:Model ID="ModelStone" runat="server" IDMode="Static" IDProperty="StoneID" ClientIdProperty="DoNotUse">
    <Fields>
    <ext:ModelField Name="DisplayStoneID" />
    <ext:ModelField Name="cStone" IsComplex="true">
    </ext:ModelField>
    <ext:ModelField Name="StoneID" ServerMapping="cStone.StoneID" />
    <ext:ModelField Name="Pcs" ServerMapping="cStone.Pcs" />
    <ext:ModelField Name="Cts" ServerMapping="cStone.Cts" />
    <ext:ModelField Name="DoNotUse" />
    </Fields>
    </ext:Model>
    </Model>

    </ext:Store>
    </Store>
    <ColumnModel>
    <Columns>
    <ext:Column ID="Column1" DataIndex="StoneID" runat="server" Text="Stone ID">
    <Editor>
    <ext:TextField ID="txtStoneID" runat="server" IDMode="Static" />
    </Editor>
    </ext:Column>
    <ext:Column ID="Column2" runat="server" Text="Display Stone ID" DataIndex="DisplayStoneID">
    <Editor>
    <ext:TextField ID="txtDisplayStoneID" runat="server" IDMode="Static" />
    </Editor>

    </ext:Column>
    <ext:Column ID="Column3" DataIndex="Pcs" runat="server" Text="Pcs">
    <Editor>
    <ext:NumberField ID="txtPCS" runat="server" IDMode="Static" />
    </Editor>
    </ext:Column>
    <ext:Column ID="Column4" DataIndex="Cts" runat="server" Text="Cts">
    <Editor>
    <ext:NumberField ID="txtCTS" runat="server" IDMode="Static" />
    </Editor>
    </ext:Column>
    </Columns>
    </ColumnModel>
    <Plugins>
    <ext:CellEditing ID="cell1" runat="server" IDMode="Static" />
    </Plugins>
    </ext:GridPanel>
    <ext:Component Width="20" ID="com1" runat="server" />
    <ext:Button ID="btnRefersh" Icon="ArrowRefresh" runat="server" IDMode="Static" Text="Refresh">
    <DirectEvents>
    <Click OnEvent="btnRefersh_Click" />
    </DirectEvents>
    </ext:Button>
    <ext:Button ID="Button2" Icon="DatabaseSave" runat="server" IDMode="Static" Text="Save">
    <DirectEvents>
    <Click OnEvent="btnSave_Click">
    <ExtraParams>
    <ext:Parameter Name="Stone" Value="#{StoreStone}.getChangedData({skipIdForNewR ecords : true})" Mode="Raw" Encode="true" />
    </ExtraParams>
    </Click>
    </DirectEvents>
    </ext:Button>
    <ext:Button ID="btnInsert" runat="server" Text="Insert" Icon="Add" OnClientClick="
    #{StoreStone}.insert(#{GridStone}.getStore().getRa nge().length, {});
    #{GridStone}.editingPlugin.startEditByPosition({ro w:(#{GridStone}.getStore().getRange().length -1),column:1});

    ">
    </ext:Button>
    </form>
    </body>
    </html>
  2. #2
    Each ModelField is submitted as separate field (editor doesn't modify complex object)
    You have to create separate properties in DirectCustomClass for StoneID, Pcs, Cts

Similar Threads

  1. [CLOSED] GridPanel Batch Update does not send data
    By chrish in forum 2.x Legacy Premium Help
    Replies: 11
    Last Post: Feb 18, 2013, 3:38 AM
  2. [URGENT]Store.Update
    By Aswini Ladish in forum 2.x Help
    Replies: 1
    Last Post: Feb 11, 2013, 9:56 AM
  3. Batch Update
    By shaileshsakaria in forum 2.x Help
    Replies: 1
    Last Post: Jan 18, 2013, 4:17 PM
  4. [2.1] GridPanelFor Batch Update
    By millenovanta in forum 2.x Help
    Replies: 20
    Last Post: Dec 26, 2012, 12:27 PM
  5. Replies: 5
    Last Post: May 17, 2011, 9:10 AM

Posting Permissions