[CLOSED] can not refresh data in a gridpanel inside rowexpander

Page 1 of 3 123 LastLast
  1. #1

    [CLOSED] can not refresh data in a gridpanel inside rowexpander

    Hello,
    I need to refresh a gridpanel's data control after a button is clicked but it is not working.
    I created the test page to demonstrate my issue. In my btnRefreshClicked() method, I tried calling the outer gridpanel which contains my RowExpander control, but that does not refresh my gridpanel inside the RowExpander - the LoadTrailerSizes didn't fire when I clicked on the Refresh button.

    How can I refresh that gridpanel's data inside the RowExpander plugin?

    Thank you very much in advance for your help!

    Below is my code:

    <%@ Page Language="C#" %>
    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script type="text/javascript">
     
    </script>
    <script runat="server">
      
            protected void Page_Load(object sender, EventArgs e)
            {
                BindContainerTrailers();
              
            }
    
            [DirectMethod]
            public List<TrailerTypeReport> LoadTrailerSizes(string action, Dictionary<string, object> extraParams)
            {
                var cid = extraParams["CID"].ToString();
                List<TrailerTypeReport> TrailerList = AddContainerTrailerReport("test");
    
                return TrailerList.Where(t => t.ContainerID == Convert.ToInt32(cid)).ToList();
            }
    
            public void btnRefreshClicked(object sender, DirectEventArgs e)
            {
                BindContainerTrailers();
            }
    
            protected void BindContainerTrailers()
            {
                stContainerTrailers.DataSource = GetContainerTrailers();
                stContainerTrailers.DataBind();
            }
            public static List<Container> GetContainerTrailers()
            {
                List<Container> trailerTypeReports = new List<Container>();
    
                trailerTypeReports.Add(new Container()
                {
                    CID = 1,
                    CType = "Basket"
                });
    
                return trailerTypeReports;
            }
            public List<TrailerTypeReport> AddContainerTrailerReport(string Desc)
            {
               
                List<TrailerTypeReport> trailerTypeReports = new List<TrailerTypeReport>();
    
                trailerTypeReports.Add(new TrailerTypeReport()
                                           {
                                               NumberOfTrailers = 1,
                                               TrailerSizeID = 1,
                                               TrailerSize_Description = Desc,
                                               ContainerID = 1,
                                               ContainerName = "some container",
                                               ContainerPercent = 20
                                           });
                return trailerTypeReports;
            }
            public class TrailerTypeReport
            {
                public int NumberOfTrailers { get; set; }
                public int TrailerInventoryID { get; set; }
                public int TrailerSizeID { get; set; }
                public string TrailerSize_Description { get; set; }
                public int ContainerID { get; set; }
                public string ContainerName { get; set; }
                public string TrailerNumber { get; set; }
                public decimal ContainerPercent { get; set; }
            }
    
            public class Container
            {
                public int CID { get; set; }
                public string CType { get; set; }
            }
    
    </script>
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <title>Store Filter</title>
    </head>
    <body>
        <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        
        <ext:Button ID="btnRefresh" Text="Refresh" runat="server" OnDirectClick="btnRefreshClicked"></ext:Button><br /><br />
              <ext:Panel ID="panelReports" runat="server" Layout="ColumnLayout" Width="700" StyleSpec="padding-top:5px;" Height="700">
                    <Items>
                        <ext:GridPanel ID="gpContainerTrailers" runat="server" AutoScroll="true" Scroll="Both"
                            ButtonAlign="Left" Width="400" StyleSpec="padding-top:5px;padding-left:10px;" Height="700">
                            <Store>
                                <ext:Store ID="stContainerTrailers" runat="server" AutoLoad="true" AutoDataBind="true">
                                    <Model>
                                        <ext:Model ID="mdContainerTrailers" runat="server" IDProperty="CID">
                                            <Fields>
                                                <ext:ModelField Name="CID" />
                                                <ext:ModelField Name="CType" />
                                            </Fields>
                                        </ext:Model>
                                    </Model>
                                </ext:Store>
                            </Store>
                            <ColumnModel runat="server">
                                <Columns>
                                    <ext:Column ID="Column1" runat="server" Text="Container Trailers" DataIndex="CType"
                                        Width="400" />
                                </Columns>
                            </ColumnModel>
                            <Plugins>
                                <ext:RowExpander ID="RowExpander1" runat="server" SelectRowOnExpand="false" Height="500"
                                    SingleExpand="false">
                                    <Component>
                                        <ext:FormPanel ID="FormPanel1" runat="server" Layout="ColumnLayout" Border="false"
                                            Height="160">
                                            <Items>
                                                <ext:GridPanel runat="server" Width="180" ButtonAlign="Center" Border="true"
                                                    AutoScroll="true" Height="700" StyleSpec="padding-left:5px;padding-bottom:5px;">
                                                    <Store>
                                                        <ext:Store ID="Store1" runat="server">
                                                            <Model>
                                                                <ext:Model ID="Model1" runat="server">
                                                                    <Fields>
                                                                        <ext:ModelField Name="TrailerSize_Description" />
                                                                    </Fields>
                                                                </ext:Model>
                                                            </Model>
                                                            <Proxy>
                                                                <ext:PageProxy DirectFn="App.direct.LoadTrailerSizes">
                                                                    <Reader>
                                                                        <ext:JsonReader />
                                                                    </Reader>
                                                                </ext:PageProxy>
                                                            </Proxy>
                                                            <AutoLoadParams>
                                                                <ext:Parameter Name="CID" Value="this.record.data.CID" Mode="Raw" />
                                                            </AutoLoadParams>
                                                        </ext:Store>
                                                    </Store>
                                                    <ColumnModel runat="server">
                                                        <Columns>
                                                            <ext:Column ID="Column2" runat="server" Text="Trailer Size" DataIndex="TrailerSize_Description"
                                                                Align="Center" Width="107" />
                                                          
                                                        </Columns>
                                                    </ColumnModel>
                                                    <SelectionModel>
                                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
                                                            <Listeners>
                                                                <Select Handler="var trailerSizeGrid = this.views[0].panel.next();
                                                                         trailerSizeGrid.getStore().load({ params: { ID: record.data.TrailerSizeID, CID: record.data.ContainerID } });
                                                                         trailerSizeGrid.down('displayfield').setValue(record.data.TrailerSize_Description); " />
                                                            </Listeners>
                                                        </ext:RowSelectionModel>
                                                    </SelectionModel>
                                                    <View>
                                                        <ext:GridView ID="GridView1" runat="server" StripeRows="true" TrackOver="true">
                                                        </ext:GridView>
                                                    </View>
                                                </ext:GridPanel>
                                              
                                            </Items>
                                        </ext:FormPanel>
                                    </Component>
                                </ext:RowExpander>
                            </Plugins>
                          
                        </ext:GridPanel>
                    </Items>
                </ext:Panel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Oct 04, 2013 at 6:03 AM. Reason: [CLOSED]
  2. #2
    Hi @Fahd,

    Binding data to a parent GridPanel doesn't affect to an inner GridPanel. There is no such a chain.

    You should reload an inner GridPanel's Store when a user expands a row.
  3. #3
    Can you please show me how to reload the inner GridPanel's store in my code? When I tried to reload my "Store1", it throws the Null Exception. I do not know how to reference the GridPanel's store because its ID is not generated until the RowExpander is clicked.


    Quote Originally Posted by Daniil View Post
    Hi @Fahd,

    Binding data to a parent GridPanel doesn't affect to an inner GridPanel. There is no such a chain.

    You should reload an inner GridPanel's Store when a user expands a row.
  4. #4
    If you set up SingleExpand="false", then an individual component will be rendered for each row. So, the Store1 ID cannot be used for every component.

    Do you really need that SingleExpand="false" setting?

    Anyway, you can do the following.

    1. Set up AutoLoad="false" for the Store1.

    2. Remove its AutoLoadParams.

    3. Add this listener for the RowExpander.
    <Expand Handler="this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
  5. #5
    Daniil,
    Thank you very much for replying back.
    I tried your suggestions. When I clicked on the "+" sign to expand the first row, it is throwing an error at
    this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});
    . I am attaching a screenshot for the error message for your review. Below is my modified code with your suggestions.

    However, if I leave SingleExpand="false" then there are no errors but the inner GridPanel still does not refresh - I added a break point in the LoadTrailerSizes method and it does not fire when I click on the "Refresh" button.

    Thanks!

    Click image for larger version. 
    
    Name:	RowExpanderRefreshIssue.jpeg 
    Views:	16 
    Size:	34.9 KB 
    ID:	6916
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script type="text/javascript">
     
    </script>
    <script runat="server">
      
            protected void Page_Load(object sender, EventArgs e)
            {
                BindContainerTrailers();
              
            }
    
            [DirectMethod]
            public List<TrailerTypeReport> LoadTrailerSizes(string action, Dictionary<string, object> extraParams)
            {
                var cid = extraParams["CID"].ToString();
                List<TrailerTypeReport> TrailerList = AddContainerTrailerReport("test");
    
                return TrailerList.Where(t => t.ContainerID == Convert.ToInt32(cid)).ToList();
            }
    
            public void btnRefreshClicked(object sender, DirectEventArgs e)
            {
                BindContainerTrailers();
            }
    
            protected void BindContainerTrailers()
            {
                stContainerTrailers.DataSource = GetContainerTrailers();
                stContainerTrailers.DataBind();
            }
            public static List<Container> GetContainerTrailers()
            {
                List<Container> trailerTypeReports = new List<Container>();
    
                trailerTypeReports.Add(new Container()
                {
                    CID = 1,
                    CType = "Basket"
                });
    
                return trailerTypeReports;
            }
            public List<TrailerTypeReport> AddContainerTrailerReport(string Desc)
            {
               
                List<TrailerTypeReport> trailerTypeReports = new List<TrailerTypeReport>();
    
                trailerTypeReports.Add(new TrailerTypeReport()
                                           {
                                               NumberOfTrailers = 1,
                                               TrailerSizeID = 1,
                                               TrailerSize_Description = Desc,
                                               ContainerID = 1,
                                               ContainerName = "some container",
                                               ContainerPercent = 20
                                           });
                return trailerTypeReports;
            }
            public class TrailerTypeReport
            {
                public int NumberOfTrailers { get; set; }
                public int TrailerInventoryID { get; set; }
                public int TrailerSizeID { get; set; }
                public string TrailerSize_Description { get; set; }
                public int ContainerID { get; set; }
                public string ContainerName { get; set; }
                public string TrailerNumber { get; set; }
                public decimal ContainerPercent { get; set; }
            }
    
            public class Container
            {
                public int CID { get; set; }
                public string CType { get; set; }
            }
    
    </script>
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <title>Store Filter</title>
    </head>
    <body>
        <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        
        <ext:Button ID="btnRefresh" Text="Refresh" runat="server" OnDirectClick="btnRefreshClicked"></ext:Button><br /><br />
              <ext:Panel ID="panelReports" runat="server" Layout="ColumnLayout" Width="700" StyleSpec="padding-top:5px;" Height="700">
                    <Items>
                        <ext:GridPanel ID="gpContainerTrailers" runat="server" AutoScroll="true" Scroll="Both"
                            ButtonAlign="Left" Width="400" StyleSpec="padding-top:5px;padding-left:10px;" Height="700">
                            <Store>
                                <ext:Store ID="stContainerTrailers" runat="server" AutoLoad="true" AutoDataBind="true">
                                    <Model>
                                        <ext:Model ID="mdContainerTrailers" runat="server" IDProperty="CID">
                                            <Fields>
                                                <ext:ModelField Name="CID" />
                                                <ext:ModelField Name="CType" />
                                            </Fields>
                                        </ext:Model>
                                    </Model>
                                </ext:Store>
                            </Store>
                            <ColumnModel runat="server">
                                <Columns>
                                    <ext:Column ID="Column1" runat="server" Text="Container Trailers" DataIndex="CType"
                                        Width="400" />
                                </Columns>
                            </ColumnModel>
                            <Plugins>
                                <ext:RowExpander ID="RowExpander1" runat="server" SelectRowOnExpand="false" Height="500"
                                    SingleExpand="true">
                                    <Component>
                                        <ext:FormPanel ID="FormPanel1" runat="server" Layout="ColumnLayout" Border="false"
                                            Height="160">
                                            <Items>
                                                <ext:GridPanel runat="server" Width="180" ButtonAlign="Center" Border="true"
                                                    AutoScroll="true" Height="700" StyleSpec="padding-left:5px;padding-bottom:5px;">
                                                    <Store>
                                                        <ext:Store ID="Store1" runat="server" AutoLoad="false">
                                                            <Model>
                                                                <ext:Model ID="Model1" runat="server">
                                                                    <Fields>
                                                                        <ext:ModelField Name="TrailerSize_Description" />
                                                                    </Fields>
                                                                </ext:Model>
                                                            </Model>
                                                            <Proxy>
                                                                <ext:PageProxy DirectFn="App.direct.LoadTrailerSizes">
                                                                    <Reader>
                                                                        <ext:JsonReader />
                                                                    </Reader>
                                                                </ext:PageProxy>
                                                            </Proxy>
                                                         <%--   <AutoLoadParams>
                                                                <ext:Parameter Name="CID" Value="this.record.data.CID" Mode="Raw" />
                                                            </AutoLoadParams>--%>
                                                        </ext:Store>
                                                    </Store>
                                                    <ColumnModel runat="server">
                                                        <Columns>
                                                            <ext:Column ID="Column2" runat="server" Text="Trailer Size" DataIndex="TrailerSize_Description"
                                                                Align="Center" Width="107" />
                                                          
                                                        </Columns>
                                                    </ColumnModel>
                                                    <SelectionModel>
                                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
                                                            <Listeners>
                                                                <Select Handler="var trailerSizeGrid = this.views[0].panel.next();
                                                                         trailerSizeGrid.getStore().load({ params: { ID: record.data.TrailerSizeID, CID: record.data.ContainerID } });
                                                                         trailerSizeGrid.down('displayfield').setValue(record.data.TrailerSize_Description); " />
                                                            </Listeners>
                                                        </ext:RowSelectionModel>
                                                    </SelectionModel>
                                                    <View>
                                                        <ext:GridView ID="GridView1" runat="server" StripeRows="true" TrackOver="true">
                                                        </ext:GridView>
                                                    </View>
                                                </ext:GridPanel>
                                              
                                            </Items>
                                        </ext:FormPanel>
                                    </Component>
                                    <Listeners>
                                        <Expand Handler="this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
                                    </Listeners>
                                </ext:RowExpander>
                            </Plugins>
                          
                        </ext:GridPanel>
                    </Items>
                </ext:Panel>
        </form>
    </body>
    </html>
    Quote Originally Posted by Daniil View Post
    If you set up SingleExpand="false", then an individual component will be rendered for each row. So, the Store1 ID cannot be used for every component.

    Do you really need that SingleExpand="false" setting?

    Anyway, you can do the following.

    1. Set up AutoLoad="false" for the Store1.

    2. Remove its AutoLoadParams.

    3. Add this listener for the RowExpander.
    <Expand Handler="this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
    Last edited by Fahd; Sep 19, 2013 at 3:21 PM.
  6. #6
    There is no "set up SingleExpand="true"" in my steps. I just asked you really need Single="false" option or not. My steps were for SingleExpand="false".

    With SingleExpand="true" is should be:
    <Expand Handler="this.component.down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
    To refresh with SingleExpand="false", please try:
    var record = App.gpContainerTrailers.getStore().getAt(0);
    
     App.RowExpander1.getComponent(record).down('gridpanel').getStore().reload({ 
        params: { 
            CID: record.data.CID 
        }
    });
    To refresh with SingleExpand="true", please try (the row should be expanded before, at least, once):
    var record = App.gpContainerTrailers.getStore().getAt(0);
    
     App.RowExpander1.component.down('gridpanel').getStore().reload({ 
        params: { 
            CID: record.data.CID 
        }
    });
  7. #7
    Thank you very much! Your code below which I put in a function named "refreshGridpanelData"
    var record = App.gpContainerTrailers.getStore().getAt(0);
     
     App.RowExpander1.getComponent(record).down('gridpanel').getStore().reload({
        params: {
            CID: record.data.CID
        }
    });
    works great for me if I wired it up to my btnRefresh button's Listener.

    my code for the button:
     <ext:Button ID="btnRefresh" Text="Refresh" runat="server" OnDirectClick="btnRefreshClicked" >
            <Listeners>
                <Click Fn="refreshGridpanelData"></Click>
            </Listeners>
    However, I have some data processing code in the btnRefreshClicked method in the codebehind that needs to be executed before refreshing the inner GridPanel's data. I tried
      public void btnRefreshClicked(object sender, DirectEventArgs e)
            {
                //  process other information in database
                // refresh data
                X.Call("refreshGridpanelData");
            }
    but this throws the Null reference error message.Click image for larger version. 

Name:	RowExpanderRefreshIssue2.jpeg 
Views:	13 
Size:	14.2 KB 
ID:	6918

    My question is: Where can i call your js to refresh the data so that it fires after everything in the btnRefreshClicked method is finished executing?

    Thank you!!



    Quote Originally Posted by Daniil View Post
    There is no "set up SingleExpand="true"" in my steps. I just asked you really need Single="false" option or not. My steps were for SingleExpand="false".

    With SingleExpand="true" is should be:
    <Expand Handler="this.component.down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
    To refresh with SingleExpand="false", please try:
    var record = App.gpContainerTrailers.getStore().getAt(0);
    
     App.RowExpander1.getComponent(record).down('gridpanel').getStore().reload({ 
        params: { 
            CID: record.data.CID 
        }
    });
    To refresh with SingleExpand="true", please try (the row should be expanded before, at least, once):
    var record = App.gpContainerTrailers.getStore().getAt(0);
    
     App.RowExpander1.component.down('gridpanel').getStore().reload({ 
        params: { 
            CID: record.data.CID 
        }
    });
  8. #8
    Quote Originally Posted by Fahd View Post
    My question is: Where can i call your js to refresh the data so that it fires after everything in the btnRefreshClicked method is finished executing
    Do you rebind the data to the parent GridPanel there? Could you, please, provide a test case?
  9. #9
    Yes. I do. Below is my test case. Thank you!
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script type="text/javascript">
        var refreshGridpanelData = function () {
            var record = App.gpContainerTrailers.getStore().getAt(0); 
            App.RowExpander1.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID} }); 
        }
    </script>
    <script runat="server">
      
            protected void Page_Load(object sender, EventArgs e)
            {
                BindContainerTrailers(); 
            }
    
            [DirectMethod]
            public List<TrailerTypeReport> LoadTrailerSizes(string action, Dictionary<string, object> extraParams)
            {
                var cid = extraParams["CID"].ToString();
                List<TrailerTypeReport> TrailerList = AddContainerTrailerReport("row #");
    
                return TrailerList.Where(t => t.ContainerID == Convert.ToInt32(cid)).ToList();
            }
    
            public void btnRefreshClicked(object sender, DirectEventArgs e)
            {
                //  process other information in database code goes here...
                
                BindContainerTrailers(); // rebind parent GridPanel control
                X.Call("refreshGridpanelData"); // refresh inner GridPanel data
            } 
            
            protected void BindContainerTrailers()
            {
                stContainerTrailers.DataSource = GetContainerTrailers();
                stContainerTrailers.DataBind();
            }
            public static List<Container> GetContainerTrailers()
            {
                List<Container> trailerTypeReports = new List<Container>();
    
                trailerTypeReports.Add(new Container()
                {
                    CID = 1,
                    CType = "Basket"
                });
    
                trailerTypeReports.Add(new Container()
                {
                    CID = 2,
                    CType = "Tray"
                });
                
                return trailerTypeReports;
            }
            public List<TrailerTypeReport> AddContainerTrailerReport(string Desc)
            {
               
                List<TrailerTypeReport> trailerTypeReports = new List<TrailerTypeReport>();
                trailerTypeReports.Add(new TrailerTypeReport()
                {
                    NumberOfTrailers = 1,
                    TrailerSizeID = 1,
                    TrailerSize_Description = Desc + " 1",
                    ContainerID = 1,
                    ContainerName = "some container",
                    ContainerPercent = 20
                });
                
             
                return trailerTypeReports;
            }
            public class TrailerTypeReport
            {
                public int NumberOfTrailers { get; set; }
                public int TrailerInventoryID { get; set; }
                public int TrailerSizeID { get; set; }
                public string TrailerSize_Description { get; set; }
                public int ContainerID { get; set; }
                public string ContainerName { get; set; }
                public string TrailerNumber { get; set; }
                public decimal ContainerPercent { get; set; }
            }
    
            public class Container
            {
                public int CID { get; set; }
                public string CType { get; set; }
            }
    
    </script>
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
        <title>Expander Refresh</title>
    </head>
    <body>
        <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        
        <ext:Button ID="btnRefresh" Text="Refresh" runat="server" OnDirectClick="btnRefreshClicked" >
        
            <Listeners>
                <Click Fn="refreshGridpanelData"></Click>
            </Listeners>
        </ext:Button><br /><br />
              <ext:Panel ID="panelReports" runat="server" Layout="ColumnLayout" Width="700" StyleSpec="padding-top:5px;" Height="700">
                    <Items>
                        <ext:GridPanel ID="gpContainerTrailers" runat="server" AutoScroll="true" Scroll="Both"
                            ButtonAlign="Left" Width="400" StyleSpec="padding-top:5px;padding-left:10px;" Height="700">
                            <Store>
                                <ext:Store ID="stContainerTrailers" runat="server" AutoLoad="true" AutoDataBind="true">
                                    <Model>
                                        <ext:Model ID="mdContainerTrailers" runat="server" IDProperty="CID">
                                            <Fields>
                                                <ext:ModelField Name="CID" />
                                                <ext:ModelField Name="CType" />
                                            </Fields>
                                        </ext:Model>
                                    </Model>
                                </ext:Store>
                            </Store>
                            <ColumnModel runat="server">
                                <Columns>
                                    <ext:Column ID="Column1" runat="server" Text="Container Trailers" DataIndex="CType"
                                        Width="400" />
                                </Columns>
                            </ColumnModel>
                            <Plugins>
                                <ext:RowExpander ID="RowExpander1" runat="server" SelectRowOnExpand="false" Height="500"
                                    SingleExpand="false">
                                    <Component>
                                        <ext:FormPanel ID="FormPanel1" runat="server" Layout="ColumnLayout" Border="false"
                                            Height="160">
                                            <Items>
                                                <ext:GridPanel runat="server" Width="180" ButtonAlign="Center" Border="true"
                                                    AutoScroll="true" Height="700" StyleSpec="padding-left:5px;padding-bottom:5px;">
                                                    <Store>
                                                        <ext:Store ID="Store1" runat="server" AutoLoad="false">
                                                            <Model>
                                                                <ext:Model ID="Model1" runat="server">
                                                                    <Fields>
                                                                        <ext:ModelField Name="TrailerSize_Description" />
                                                                    </Fields>
                                                                </ext:Model>
                                                            </Model>
                                                            <Proxy>
                                                                <ext:PageProxy DirectFn="App.direct.LoadTrailerSizes">
                                                                    <Reader>
                                                                        <ext:JsonReader />
                                                                    </Reader>
                                                                </ext:PageProxy>
                                                            </Proxy>
                                                         <%--   <AutoLoadParams>
                                                                <ext:Parameter Name="CID" Value="this.record.data.CID" Mode="Raw" />
                                                            </AutoLoadParams>--%>
                                                        </ext:Store>
                                                    </Store>
                                                    <ColumnModel runat="server">
                                                        <Columns>
                                                            <ext:Column ID="Column2" runat="server" Text="Trailer Size" DataIndex="TrailerSize_Description"
                                                                Align="Center" Width="107" />
                                                          
                                                        </Columns>
                                                    </ColumnModel>
                                                    <SelectionModel>
                                                        <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
                                                            <Listeners>
                                                                <Select Handler="var trailerSizeGrid = this.views[0].panel.next();
                                                                         trailerSizeGrid.getStore().load({ params: { ID: record.data.TrailerSizeID, CID: record.data.ContainerID } });
                                                                         trailerSizeGrid.down('displayfield').setValue(record.data.TrailerSize_Description); " />
                                                            </Listeners>
                                                        </ext:RowSelectionModel>
                                                    </SelectionModel>
                                                    <View>
                                                        <ext:GridView ID="GridView1" runat="server" StripeRows="true" TrackOver="true">
                                                        </ext:GridView>
                                                    </View>
                                                </ext:GridPanel>
                                              
                                            </Items>
                                        </ext:FormPanel>
                                    </Component>
                                    <Listeners>
                                        <Expand Handler="this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
                                    </Listeners>
                                </ext:RowExpander>
                            </Plugins>
                          
                        </ext:GridPanel>
                    </Items>
                </ext:Panel>
        </form>
    </body>
    </html>
    Quote Originally Posted by Daniil View Post
    Do you rebind the data to the parent GridPanel there? Could you, please, provide a test case?
  10. #10
    Please clarify why do you need to refresh an inner grid if it is refreshed each time on expanding according to this listener?
    <Expand Handler="this.getComponent(record).down('gridpanel').getStore().reload({ params: { CID: record.data.CID }});" />
Page 1 of 3 123 LastLast

Similar Threads

  1. Refresh GridPanel data on postback event
    By huzzy143 in forum 1.x Help
    Replies: 6
    Last Post: Sep 05, 2011, 7:55 PM
  2. [CLOSED] Refresh Rowexpander's GridPanel
    By SouthDeveloper in forum 1.x Legacy Premium Help
    Replies: 5
    Last Post: Jul 21, 2011, 9:28 PM
  3. Replies: 5
    Last Post: Dec 29, 2010, 5:46 PM
  4. Replies: 1
    Last Post: Oct 06, 2009, 10:58 AM
  5. Replies: 4
    Last Post: Nov 17, 2008, 8:16 AM

Posting Permissions