Order GridPanel Groups

  1. #1

    Order GridPanel Groups

    Hi All,
    I have read the following thread:
    http://forums.ext.net/showthread.php...rbitrary-order

    But my data are difference from provided example,

    In my case, the data as bellows (Concatenated by: "Courtesy + FirstName + LastName"):

    Mr. Brent Rouse
    Mr. David Keller
    Ms. Deb Gulie
    Currently, the data are sort firstly by Courtesy, then FirstName and finally is LastName

    My question is how to sort by LastName first for above data?

    Expectation as bellow:
    Ms. Deb Gulie
    Mr. David Keller
    Mr. Brent Rouse
    Thanks for any helps or advices!

    dany4446.
    Last edited by Daniil; Feb 01, 2012 at 5:48 PM. Reason: Removed code tags for the link
  2. #2
    Hi,

    What is the Store's GroupField? I.e. what field is the GridPanel grouped by?
  3. #3
    Hi Daniil,

    The field that the GridPanel groups is "FullName", that is concatenated (in StoreProcedure) by Courtersy + FirstName + LastName.
    When loading, the FullName value is a string value such as "Mr. Brent Rouse"

    Please see my code bellow for details:

    <%@ Page Language="C#" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">    
        protected void Page_Load(object sender, EventArgs e)   
        {       
            if (!X.IsAjaxRequest)        
            {           
                Store store = this.GridPanel1.Store.Primary;            
                store.DataSource = new object[]            
                {                 
                    new object[] {"Mr. Brent Rouse", "Compxx", "121213"},                
                    new object[] {"Mr. Brent Rouse", "Compxx", "434343"},               
                    new object[] {"Mr. David Keller", "Comp1212", "232342"},                
                    new object[] {"Mr. David Keller", "Comp1212", "423423"},               
                    new object[] {"Mr. David Keller", "Comp1212", "343434"},               
                    new object[] {"Ms. Deb Gulie", "test223", "545455"},               
                    new object[] {"Ms. Deb Gulie", "test223", "5767567"},               
                    new object[] {"Ms. Deb Gulie", "test223", "4235235"},                
                    new object[] {"Ms. Deb Gulie", "test223", "764757"}           
                };                 
                store.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>Ext.Net Example</title>
    </head>
    <body>
        <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
            <Store>
                <ext:Store ID="Store1" runat="server" GroupField="FullName">
                    <Reader>
                        <ext:ArrayReader>
                            <Fields>
                                <ext:RecordField Name="FullName" /> <%--Concatenated (in Store Procedure) by Courtersy + FirstName + LastName--%>
                                <ext:RecordField Name="Company" />
                                <ext:RecordField Name="ProductNo" />
                            </Fields>
                        </ext:ArrayReader>
                    </Reader>
                </ext:Store>
            </Store>
            <ColumnModel ID="ColumnModel1" runat="server">
                <Columns>
                    <ext:Column Header="Full Name" DataIndex="FullName" />
                    <ext:Column Header="Company" DataIndex="Company" />
                    <ext:Column Header="Product No" DataIndex="ProductNo" />
                </Columns>
            </ColumnModel>
            <View>
                <ext:GroupingView ID="GroupingView1" runat="server" />
            </View>
        </ext:GridPanel>
        </form>
    </body>
    </html>

    Thanks so much for helping,
    dany4446.
  4. #4
    Here you are.

    Example
    <%@ Page Language="C#" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">    
        protected void Page_Load(object sender, EventArgs e)   
        {       
            if (!X.IsAjaxRequest)        
            {           
                Store store = this.GridPanel1.GetStore();            
                store.DataSource = new object[]            
                {                 
                    new object[] {"Mr. Brent Rouse", "Compxx", "121213"},                
                    new object[] {"Mr. Brent Rouse", "Compxx", "434343"},               
                    new object[] {"Mr. David Keller", "Comp1212", "232342"},                
                    new object[] {"Mr. David Keller", "Comp1212", "423423"},               
                    new object[] {"Mr. David Keller", "Comp1212", "343434"},               
                    new object[] {"Ms. Deb Gulie", "test223", "545455"},               
                    new object[] {"Ms. Deb Gulie", "test223", "5767567"},               
                    new object[] {"Ms. Deb Gulie", "test223", "4235235"},                
                    new object[] {"Ms. Deb Gulie", "test223", "764757"}           
                };                 
                store.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 runat="server">
        <title>Ext.NET Example</title>
    
        <script type="text/javascript">
            var mySortType = function (value) {
                return value.substr(value.indexOf(" ", value.indexOf(" ") + 1));
            };
        </script>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store runat="server" GroupField="FullName">
                        <Reader>
                            <ext:ArrayReader>
                                <Fields>
                                    <ext:RecordField Name="FullName">
                                        <CustomSortType Fn="mySortType" />
                                    </ext:RecordField>
                                    <ext:RecordField Name="Company" />
                                    <ext:RecordField Name="ProductNo" />
                                </Fields>
                            </ext:ArrayReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="Full Name" DataIndex="FullName" />
                        <ext:Column Header="Company" DataIndex="Company" />
                        <ext:Column Header="Product No" DataIndex="ProductNo" />
                    </Columns>
                </ColumnModel>
                <View>
                    <ext:GroupingView runat="server" />
                </View>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  5. #5
    Hi Daniil,
    Your solution helped me much! :)

    Thanks!
    dany4446

Similar Threads

  1. [CLOSED] Order GridPanel Groups in an arbitrary order?
    By dmoore in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Dec 27, 2013, 4:35 AM
  2. Replies: 3
    Last Post: Dec 30, 2011, 12:34 PM
  3. [CLOSED] Expanding / Collapsing all groups of a gridpanel
    By Pablo_Azevedo in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Sep 17, 2010, 7:43 PM
  4. Replies: 1
    Last Post: May 27, 2009, 4:55 AM
  5. Replies: 2
    Last Post: May 27, 2009, 4:51 AM

Tags for this Thread

Posting Permissions