[CLOSED] Problem with Gridpanel Column's Hidden Property

  1. #1

    [CLOSED] Problem with Gridpanel Column's Hidden Property

    Hello,

    I have a problem with Gridpanel Column's Hidden property. For eg: in the code given below, there are 5 columns in the gridpanel. By defualt all the columns are shown, with Hidden="false". So, after displaying all the columns in the gridpanel, as per the screen shot, I have unchecked the column 'Company' from the given list. Hence the column 'Company' hidden from the Gridpanel. So here, by clicking the button 'To Excel', the method 'ExportData' will be called where I am checking the hidden property of each column, here the hidden property of the column 'Company' is supposed to be true, but it is returning false which is not correct. So can you please let me know the solution for it.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <%@ Import Namespace="System.Xml" %>
    <%@ Import Namespace="System.Xml.Xsl" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        private object[] TestData
        {
            get
            {
                DateTime now = DateTime.Now;
    
                return new object[]
                {
                    new object[] {"3m Co", 71.72, 0.02, 0.03, now},
                    new object[] {"Alcoa Inc", 29.01, 0.42, 1.47, now},
                    new object[] {"Altria Group Inc", 83.81, 0.28, 0.34, now},
                    new object[] {"American Express Company", 52.55, 0.01, 0.02, now},
                    new object[] {"American International Group, Inc.", 64.13, 0.31, 0.49, now},
                    new object[] {"AT&amp;T Inc.", 31.61, -0.48, -1.54, now},
                    new object[] {"Boeing Co.", 75.43, 0.53, 0.71, now},
                    new object[] {"Caterpillar Inc.", 67.27, 0.92, 1.39, now},
                    new object[] {"Citigroup, Inc.", 49.37, 0.02, 0.04, now},
                    new object[] {"E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, now},
                    new object[] {"Exxon Mobil Corp", 68.1, -0.43, -0.64, now},
                    new object[] {"General Electric Company", 34.14, -0.08, -0.23, now},
                    new object[] {"Government Motors Corporation", 30.27, 1.09, 3.74, now},
                    new object[] {"Hewlett-Packard Co.", 36.53, -0.03, -0.08, now},
                    new object[] {"Honeywell Intl Inc", 38.77, 0.05, 0.13, now},
                    new object[] {"Intel Corporation", 19.88, 0.31, 1.58, now},
                    new object[] {"International Business Machines", 81.41, 0.44, 0.54, now},
                    new object[] {"Johnson &amp; Johnson", 64.72, 0.06, 0.09, now},
                    new object[] {"JP Morgan &amp; Chase &amp; Co", 45.73, 0.07, 0.15, now},
                    new object[] {"McDonald\"s Corporation", 36.76, 0.86, 2.40, now},
                    new object[] {"Merck &amp; Co., Inc.", 40.96, 0.41, 1.01, now},
                    new object[] {"Microsoft Corporation", 25.84, 0.14, 0.54, now},
                    new object[] {"Pfizer Inc", 27.96, 0.4, 1.45, now},
                    new object[] {"The Coca-Cola Company", 45.07, 0.26, 0.58, now},
                    new object[] {"The Home Depot, Inc.", 34.64, 0.35, 1.02, now},
                    new object[] {"The Procter &amp; Gamble Company", 61.91, 0.01, 0.02, now},
                    new object[] {"United Technologies Corporation", 63.26, 0.55, 0.88, now},
                    new object[] {"Verizon Communications", 35.57, 0.39, 1.11, now},
                    new object[] {"Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, now}
                };
            }
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.Store1.DataSource = this.TestData;
                this.Store1.DataBind();
            }
        }
    
        protected void ExportData(object sender, DirectEventArgs e)
        {
            Ext.Net.GridPanel gpDepLst = this.GridPanel1;
            foreach (Ext.Net.ColumnBase eachColumn in gpDepLst.ColumnModel.Columns)
            {
                
            }
        }
    
        
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ScriptManager1" runat="server" />
        <ext:Store ID="Store1" runat="server" RefreshAfterSaving="None">
            <Reader>
                <ext:ArrayReader IDProperty="company">
                    <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="Y-m-dTh:i:s" />
                    </Fields>
                </ext:ArrayReader>
            </Reader>
        </ext:Store>
        <ext:GridPanel ID="GridPanel1" runat="server" StoreID="Store1" StripeRows="true"
            Title="Array Grid" Width="600" Height="300" AutoExpandColumn="Company">
            <ColumnModel ID="ColumnModel1" runat="server">
                <Columns>
                    <ext:Column ColumnID="Company" Header="Company" Width="160" Sortable="true" DataIndex="company">
                        <Editor>
                            <ext:TextField ID="TextField1" runat="server" />
                        </Editor>
                    </ext:Column>
                    <ext:Column Header="Price" Width="75" Sortable="true" DataIndex="price">
                        <Editor>
                            <ext:TextField ID="TextField2" runat="server" />
                        </Editor>
                    </ext:Column>
                    <ext:Column Header="Change" Width="75" Sortable="true" DataIndex="change">
                        <Editor>
                            <ext:TextField ID="TextField3" runat="server" />
                        </Editor>
                    </ext:Column>
                    <ext:Column Header="Change" Width="75" Sortable="true" DataIndex="pctChange">
                        <Editor>
                            <ext:TextField ID="TextField4" runat="server" />
                        </Editor>
                    </ext:Column>
                    <ext:Column Header="Last Updated" Width="85" Sortable="true" DataIndex="lastChange">
                        <Renderer Fn="Ext.util.Format.dateRenderer('G:i:s')" />
                    </ext:Column>
                </Columns>
            </ColumnModel>
            <TopBar>
                <ext:Toolbar ID="uctbDepartment" runat="server">
                    <Items>
                        <ext:Button ID="btnExportExcel" runat="server" Text="To Excel" AutoPostBack="true"
                            Icon="PageExcel">
                            <DirectEvents>
                                <Click OnEvent="ExportData">
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </TopBar>
        </ext:GridPanel>
        </ext:Hidden>
        </form>
    </body>
    </html>
    Thanks in Advance
    Attached Thumbnails Click image for larger version. 

Name:	ColumnHide.jpg 
Views:	118 
Size:	63.3 KB 
ID:	4442  
    Last edited by Daniil; Jul 10, 2012 at 10:20 AM. Reason: [CLOSED]
  2. #2
    Hi,

    A client side change (in JavaScript) of the Column hidden property is not mirrored to server.

    Anyways, you should get a grid data on client side as here:
    https://examples1.ext.net/#/GridPane...ort_Data_Ajax/
    https://examples1.ext.net/#/GridPane...Data_PostBack/

    To get the data of the visible column only, please use the visibleOnly option.
    GridPanel1.getRowsValues({visibleOnly : true});

Similar Threads

  1. [CLOSED] GridPanel Hidden Column
    By cwolcott in forum 2.x Legacy Premium Help
    Replies: 9
    Last Post: Aug 27, 2012, 7:57 AM
  2. [CLOSED] Render property of type List<T> in GridPanel column
    By martin.mosimann in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Feb 08, 2011, 4:16 PM
  3. Replies: 1
    Last Post: Sep 02, 2010, 3:59 PM
  4. [CLOSED] [1.0] Hidden property is make problem
    By webclouder in forum 1.x Legacy Premium Help
    Replies: 7
    Last Post: Jun 18, 2010, 9:56 PM
  5. Replies: 2
    Last Post: Mar 20, 2010, 3:01 PM

Posting Permissions