[CLOSED] column Lock does not work on dynamically created Grid

  1. #1

    [CLOSED] column Lock does not work on dynamically created Grid

    Hi,

    I want to lock first three columns of my dynamically created grid( In Code Behind). But it seems Locked property on column wont do the trick in code behind.

    here i have attached a sample code to generate the scenario.

    --Default.aspx--
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" %>
    <%@ 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">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
         <asp:HiddenField ID="HiddenField_CallingSystem" runat="server" />
    <asp:HiddenField ID="HiddenField_CDocContainer" runat="server" />
    <asp:HiddenField ID="HiddenField_CDocURL" runat="server" />
    <asp:HiddenField ID="HiddenField_UserID" runat="server" />
    <asp:HiddenField ID="HiddenField_IsAuthenticated" runat="server" />   
        <div>
        <ext:ResourceManager ID="ResourceManager_Trending" runat="server" IDMode="Explicit" CleanResourceUrl="false">
            
        </ext:ResourceManager>
            <ext:Viewport ID="Viewport_Trending" runat="server" Layout="BorderLayout">
            <Items>
           
    
    <ext:ColumnLayout ID="ColumnLayout_TrendingTabular" runat="server" FitHeight="true">
        <Columns>
            <ext:LayoutColumn ColumnWidth="1">
                <ext:Panel ID="Panel_TrendingTabular" runat="server" Border="false" ButtonAlign="Right">
                    <BottomBar>
                        <ext:Toolbar ID="BottomToolBar_TabTrendingList" runat="server">
                            <Items>
                                <ext:ToolbarFill>
                                </ext:ToolbarFill>
                                <ext:ButtonGroup ID="ButtonGroup_btnTrendingTabular_Print" runat="server">
                                    <Items>
                                        <ext:Button ID="btnTrendingTabular_Print" runat="server" Text="Print" Disabled="true">
                                            <Listeners>
                                                <Click Handler="TrendingTabular_ReportPrinter_v2();" />
                                            </Listeners>
                                        </ext:Button>
                                    </Items>
                                </ext:ButtonGroup>
                                   <ext:ButtonGroup ID="ButtonGroup_btnTrendingTabular_Export" runat="server">
                                    <Items>
                                        <ext:Button ID="btnTrendingTabular_Export" runat="server" Text="Export" Disabled="true">
                                            <Listeners>
                                                <Click Handler="ExportTableTrending(#{selTrendingTabular_Export});" />
                                            </Listeners>
                                        </ext:Button>
                                    </Items>
                                </ext:ButtonGroup>
                                <ext:ButtonGroup ID="ButtonGroup_cancel" runat="server" Visible="false">
                                    <Items>
                                        <ext:Button ID="btnCancel" runat="server" Text="Cancel" Disabled="true">
                                            <Listeners>
                                                <Click Handler="ExportCDOCComplate('Success');" />
                                            </Listeners>
                                        </ext:Button>
                                    </Items>
                                </ext:ButtonGroup>
                                <ext:SelectBox ID="selTrendingTabular_Export" runat="server" Disabled="true" ValueField="Code"
                                    DisplayField="Description" Width="150">
                                    <Store>
                                        <ext:Store ID="storeTrendingTabular_Export" runat="server">
                                            <Reader>
                                                <ext:ArrayReader>
                                                    <Fields>
                                                        <ext:RecordField Name="Code" />
                                                        <ext:RecordField Name="Description" />
                                                    </Fields>
                                                </ext:ArrayReader>
                                            </Reader>
                                        </ext:Store>
                                    </Store>
                                </ext:SelectBox>
                            </Items>
                        </ext:Toolbar>
                    </BottomBar>
                </ext:Panel>
            </ext:LayoutColumn>
        </Columns>
    </ext:ColumnLayout>
            </Items>
           </ext:Viewport>
        </div>
        </form>
    </body>
    </html>

    --Default.aspx.cs--
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Ext.Net;
    using System.Data;
    
    namespace WebApplication4
    {
        public partial class _Default : System.Web.UI.Page
        {
            Column col1;
            Column col2;
            Column col3;
            Column col4;
    
    
            protected void Page_Load(object sender, EventArgs e)
            {
                ////if (!X.IsAjaxRequest)
                //{
                    List<object> dataS = new List<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" },
                    new object[] { "Altria Group Inc", 83.81, 0.28, 0.34, "9/1 12:00am" },
                    new object[] { "American Express Company", 52.55, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { "American International Group, Inc.", 64.13, 0.31, 0.49, "9/1 12:00am" },
                    new object[] { "AT&T Inc.", 31.61, -0.48, -1.54, "9/1 12:00am" },
                    new object[] { "Boeing Co.", 75.43, 0.53, 0.71, "9/1 12:00am" },
                    new object[] { "Caterpillar Inc.", 67.27, 0.92, 1.39, "9/1 12:00am" },
                    new object[] { "Citigroup, Inc.", 49.37, 0.02, 0.04, "9/1 12:00am" },
                    new object[] { "E.I. du Pont de Nemours and Company", 40.48, 0.51, 1.28, "9/1 12:00am" },
                    new object[] { "Exxon Mobil Corp", 68.1, -0.43, -0.64, "9/1 12:00am" },
                    new object[] { "General Electric Company", 34.14, -0.08, -0.23, "9/1 12:00am" },
                    new object[] { "General Motors Corporation", 30.27, 1.09, 3.74, "9/1 12:00am" },
                    new object[] { "Hewlett-Packard Co.", 36.53, -0.03, -0.08, "9/1 12:00am" },
                    new object[] { "Honeywell Intl Inc", 38.77, 0.05, 0.13, "9/1 12:00am" },
                    new object[] { "Intel Corporation", 19.88, 0.31, 1.58, "9/1 12:00am" },
                    new object[] { "International Business Machines", 81.41, 0.44, 0.54, "9/1 12:00am" },
                    new object[] { "Johnson & Johnson", 64.72, 0.06, 0.09, "9/1 12:00am" },
                    new object[] { "JP Morgan & Chase & Co", 45.73, 0.07, 0.15, "9/1 12:00am" },
                    new object[] { "McDonald\"s Corporation", 36.76, 0.86, 2.40, "9/1 12:00am" },
                    new object[] { "Merck & Co., Inc.", 40.96, 0.41, 1.01, "9/1 12:00am" },
                    new object[] { "Microsoft Corporation", 25.84, 0.14, 0.54, "9/1 12:00am" },
                    new object[] { "Pfizer Inc", 27.96, 0.4, 1.45, "9/1 12:00am" },
                    new object[] { "The Coca-Cola Company", 45.07, 0.26, 0.58, "9/1 12:00am" },
                    new object[] { "The Home Depot, Inc.", 34.64, 0.35, 1.02, "9/1 12:00am" },
                    new object[] { "The Procter & Gamble Company", 61.91, 0.01, 0.02, "9/1 12:00am" },
                    new object[] { "United Technologies Corporation", 63.26, 0.55, 0.88, "9/1 12:00am" },
                    new object[] { "Verizon Communications", 35.57, 0.39, 1.11, "9/1 12:00am" },
                    new object[] { "Wal-Mart Stores, Inc.", 45.45, 0.73, 1.63, "9/1 12:00am" }
                };
                    GridPanel grid = new GridPanel()
                    {
                        ID = "GridPanel_TabTrendingList",
                        Width = 300,
                        Height = 400,
                        StripeRows = true,
                        TrackMouseOver = true,
                        IDMode = IDMode.Explicit
                    };
    
                    Store store = new Store()
                    {
                        ID = "Store_TabTrendingList",
                        IDMode = IDMode.Explicit
                    };
    
                    DataTable dt = CreateDataTable(dataS);
                    JsonReader reader = new JsonReader();
    
                    store.Reader.Add(reader);
    
                    int counter = 0;
                    
                    foreach (DataColumn column in dt.Columns)
                    {
                        reader.Fields.Add(column.ColumnName, MappingType(column.DataType));
                        Column col = new Column();
    
                        bool colSortable = false;
                        int colWidth = 100;
    
                        col.Header = column.ColumnName;
                        col.Width = colWidth;
                        col.Sortable = colSortable;
                        col.Align = Alignment.Left;
                        col.DataIndex = column.ColumnName;
                        col.Resizable = true;
    
                        if (counter < 3)
                            col.Locked = true;
    
                        counter++;
                        grid.ColumnModel.Columns.Add(col);
                    }
    
                    store.DataSource = dt;
                    store.DataBind();
                    Panel_TrendingTabular.Items.Add(grid);
                //}
    
                if (X.IsAjaxRequest)
                {
                    store.Render();
                    grid.StoreID = store.ClientID;
                    grid.Render();
                }
                else
                {
                    grid.Store.Add(store);
                }
            }
    
            private DataTable CreateDataTable(List<object> data)
            {
                string strCompany = "company";
                string strPrice = "price";
                string strChange = "change";
                string strPctChange = "pctChange";
                string strLastChange = "lastChange";
    
                DataTable table = new DataTable();
                table.Columns.Add(new DataColumn("company"));
                table.Columns.Add(new DataColumn("price", typeof(float)));
                table.Columns.Add(new DataColumn("change", typeof(float)));
                table.Columns.Add(new DataColumn("pctChange", typeof(float)));
                table.Columns.Add(new DataColumn("lastChange", typeof(DateTime)));
    
    
                foreach (var item in data)
                {
                    DataRow row = table.Rows.Add();
                    row[strCompany] = ((object[])(item))[0];
                    row[strPrice] = float.Parse(((object[])(item))[1].ToString());
                    row[strChange] = float.Parse(((object[])(item))[2].ToString());
                    row[strPctChange] = float.Parse(((object[])(item))[3].ToString());
                    row[strLastChange] = DateTime.Today;
                    
                }
    
                return table;
            }
    
            private RecordFieldType MappingType(Type type)
            {
                if (type == typeof(string))
                {
                    return RecordFieldType.String;
                }
                else if (type == typeof(DateTime))
                {
                    return RecordFieldType.Date;
                }
                else if (type == typeof(int))
                {
                    return RecordFieldType.Int;
                }
                else if (type == typeof(double))
                {
                    return RecordFieldType.Float;
                }
                else if (type == typeof(bool))
                {
                    return RecordFieldType.Boolean;
                }
    
                return RecordFieldType.Auto;
            }
        }
    }


    Thanks.
    Last edited by Daniil; Feb 12, 2013 at 5:25 AM. Reason: [CLOSED]
  2. #2
    Hi @nhg_itd,

    In Ext.NET v1 the Locked option does only make sense with a LockingGridView.
    https://examples1.ext.net/#/GridPane...ckingGridView/
  3. #3
    Can you please show me a sample how to use LockingGridView in Code Behind?

    Thanks.
  4. #4
    Sure.

    Example
    GridPanel grid = new GridPanel();
    grid.View.Add(new LockingGridView());

Similar Threads

  1. Replies: 1
    Last Post: Jan 18, 2013, 2:11 AM
  2. [CLOSED] Unable to lock grid view column
    By RCN in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Nov 26, 2012, 6:21 PM
  3. [CLOSED] hiding sort arrow on dynamically created acion column
    By GLD in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Oct 26, 2012, 3:16 PM
  4. [CLOSED] Export dynamically created Grid/Store
    By CarWise in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: May 05, 2011, 12:40 PM
  5. [CLOSED] AutoExpandColumn on dynamically created column
    By wazige in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Mar 11, 2011, 2:02 PM

Posting Permissions