Bind dynamic object in store with readData

  1. #1

    [CLOSED] Bind dynamic object in store with readData

    Hi guys,

    I Have a infinith GridPanel based on https://examples2.ext.net/#/GridPane...ling/Overview/

    But i try to bind List<dynamic>, i have rows but don't display.

    ReadData method:

    protected void Store_ReadData(object sender, StoreReadDataEventArgs e)
        {
            Store store = (Store)sender;
            List<dynamic> data = new List<StockQuotation>();
            
            int start = e.Start,
                limit = e.Limit;
            Random randow = new Random();
            DateTime now = DateTime.Now;
            
            for (int i = start + 1; i <= start + limit; i++)
            {
                dynamic qoute = new StockQuotation();
                qoute.Company = "Company" + i;
                qoute.Price = randow.Next(0,200);
                qoute.LastUpdate = now;
                data.Add(qoute);
            }
            store.Data = data;
            e.Total = 50000;
        }
    StockQuotation class :


     public class StockQuotation : DynamicObject
    {
             private Dictionnary<String, object> _listeAtt = new Dictionary<String, object>();
    
             public override bool TryGetMember(
            GetMemberBinder binder, out object result)
        {
            string name = binder.Name;
            return _listeAtt.TryGetValue(name, out result);
        }
    
        public override bool TrySetMember(
            SetMemberBinder binder, object value)
        {
            _listeAtt[binder.Name] = value;
            return true;
        }
    }
    Aspx class :

    <ext:GridPanel 
                runat="server" 
                Width="500" 
                Height="500"
                DisableSelection="true" 
                Title="Stock Price">
                <Store>
                    <ext:Store 
                        runat="server" 
                        Buffered="true" 
                        PageSize="100"
                        OnReadData="Store_ReadData">
                        <Proxy>
                            <ext:PageProxy>
                                <Reader>
                                    <ext:JsonReader Root="data" />
                                </Reader>
                            </ext:PageProxy>
                        </Proxy>
                        <Model>
                            <ext:Model runat="server">
                                <Fields>
                                    <ext:ModelField Name="Company" />
                                    <ext:ModelField Name="Price" />
                                    <ext:ModelField Name="LastUpdate" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>           
                <ColumnModel runat="server">
    		        <Columns>
                        <ext:RowNumbererColumn 
                            runat="server" 
                            Width="50" 
                            Sortable="false" />
                        <ext:Column 
                            runat="server" 
                            Text="Company" 
                            DataIndex="Company" 
                            Flex="1" />
                        <ext:Column 
                            runat="server" 
                            Text="Price, $" 
                            DataIndex="Price" 
                            Width="70" 
                            Align="Center" />
                        <ext:Column 
                            runat="server" 
                            Text="Last Update" 
                            DataIndex="LastUpdate" 
                            Width="140">
                            <Renderer Format="Date" FormatArgs="'n/j/Y g:i:s A'" />
                        </ext:Column>
    		        </Columns>
                </ColumnModel>           
                <View>
                    <ext:GridView runat="server" TrackOver="false" />
                </View>                        
            </ext:GridPanel>
    Here is what I get

    Click image for larger version. 

Name:	Sans titre.png 
Views:	162 
Size:	17.0 KB 
ID:	4944

    Regards

    Yoann
    Last edited by Yoann; Oct 22, 2012 at 8:27 AM.
  2. #2
    I guess dynamic object has no properties therefore it cannot be serialized properly
    Use anonymous objects
    data.Add(new {Company="...", ...});
  3. #3
    Thanks for your response,
    but i use the dynamic class while I do not know the class property.

    Here is the example, but in my appli i have dynamic model and column
  4. #4
    I serialized on my dynamic object and it's ok
  5. #5
    You can try convert dynamic object to anonymous
    http://blog.jorgef.net/2011/06/conve...o-dynamic.html

    Petr

Similar Threads

  1. [CLOSED] How to bind dictionary object to RecordField?
    By kaustubhzoal in forum 1.x Legacy Premium Help
    Replies: 13
    Last Post: Dec 06, 2011, 6:39 AM
  2. Replies: 0
    Last Post: Nov 23, 2011, 12:35 PM
  3. Replies: 0
    Last Post: Mar 04, 2011, 12:05 PM
  4. Replies: 0
    Last Post: Mar 04, 2011, 6:46 AM
  5. Bind Object tree to GridPanel
    By Hari in forum 1.x Help
    Replies: 2
    Last Post: Jan 20, 2010, 2:57 AM

Tags for this Thread

Posting Permissions