Store.Listeners.DataChanged.Handler from Code Behind doesn't work

  1. #1

    Store.Listeners.DataChanged.Handler from Code Behind doesn't work

    <%@ Page Language="C#" %>
     
    <%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
     
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            Store1.Listeners.DataChanged.Handler = string.Format("{{{0}}}.getForm().loadRecord(this.getAt(0));", FormPanel1.ClientID);        
            this.Store1.DataSource = new object[]
                {
                    new object[] { "3m Co", 71.72, 0.02, 0.03, "9/1 12:00am" },
                    new object[] { "Alcoa Inc", 29.01, 0.42, 1.47, "9/1 12:00am" },
                };
            
            this.Store1.DataBind();        
        }    
      
    </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>FormView - Ext.NET Examples</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" AutoDataBind="false" />
             
            <ext:Store ID="Store1" runat="server">
                <Reader>
                    <ext:ArrayReader>
                        <Fields>
                            <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>
             
            <ext:Window ID="Window1"
                runat="server"
                Title="Form View"
                Width="400"
                Height="210"
                Padding="10"
                Resizable="false"
                Closable="false"
                Layout="Fit">
                <Items>
                    <ext:FormPanel
                        ID="FormPanel1"
                        runat="server"
                        Border="false"
                        BodyStyle="background-color:transparent"
                        Layout="Form">
                        <Items>
                            <ext:TextField
                                ID="CompanyField"
                                runat="server"
                                DataIndex="company"
                                ReadOnly="true"
                                FieldLabel="Company"
                                Width="260"
                                />
                            <ext:NumberField
                                ID="PriceField"
                                runat="server"
                                DataIndex="price"
                                ReadOnly="false"
                                FieldLabel="Price"
                                Width="260"
                                />
                            <ext:NumberField
                                ID="ChangeField"
                                runat="server"
                                DataIndex="change"
                                ReadOnly="true"
                                FieldLabel="Change"
                                Width="260"
                                />
                            <ext:NumberField
                                ID="PctChangeField"
                                runat="server"
                                DataIndex="pctChange"
                                ReadOnly="true"
                                FieldLabel="PctChange"
                                Width="260"
                                />
                            <ext:DateField
                                ID="LastChangeField"
                                runat="server"
                                DataIndex="lastChange"
                                ReadOnly="true"
                                FieldLabel="Last change"
                                Width="260"
                                />
                        </Items>
                    </ext:FormPanel>
                </Items>
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1"
                        runat="server"
                        PageSize="1"
                        StoreID="Store1"
                        DisplayInfo="false"
                        />                   
                </BottomBar>           
            </ext:Window>
        </form>
    </body>
    </html>
    Last edited by geoffrey.mcgill; Mar 14, 2012 at 3:38 PM. Reason: please use [CODE] tags
  2. #2
    Hi,

    There are too many "{}".

    string.Format("{{{0}}}.getForm().loadRecord(this.getAt(0));", FormPanel1.ClientID);
    The result string is:

    {FormPanel1}.getForm().loadRecord(this.getAt(0));
    Also you should add a small delay, because at the first time when the DataChanged listener is executed, the FormPanel is not rendered yet.

    Example

    Store1.Listeners.DataChanged.Handler = string.Format("{0}.getForm().loadRecord(this.getAt(0));", FormPanel1.ClientID);
    Store1.Listeners.DataChanged.Delay = 10;
    Last edited by Daniil; Mar 15, 2012 at 8:08 AM.
  3. #3
    Thanks Danill.

Similar Threads

  1. [CLOSED] visible in code behind doesn't work for portlet
    By CarpFisher in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: Jun 29, 2012, 12:30 PM
  2. Replies: 8
    Last Post: Dec 28, 2011, 4:07 AM
  3. click handler doesn't work
    By Kamal in forum 1.x Help
    Replies: 2
    Last Post: Nov 17, 2009, 10:02 AM
  4. Replies: 3
    Last Post: Sep 17, 2009, 11:44 AM
  5. Replies: 2
    Last Post: Nov 04, 2008, 12:28 AM

Posting Permissions