Column Locking not working when using dynmic load grid

  1. #1

    Column Locking not working when using dynmic load grid

    Hi there,

    I have two problem .

    1. Column Locking not working
    2. when use compatibility view can't see the page , but if remove Store1 it's work well

    this is my code, please take a look.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="Module_AanalysisReport_ActivityReportReport" %>
    
    <!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></title>
        <script language="javascript" type="text/javascript" src="../../js/FusionCharts/FusionCharts.js"></script>
        <script type="text/javascript">
            function getRowClass(record) {
                if (record.data.TITLE == 'DATE') {
                    return "DateRow";
                }
                if (record.data.isCompare == '1') {
                    return "CompareRow";
                }
            }
            var showHighLight = function (grid) {
                var views = grid.getSelectionModel().views;
                for (var i = 0; i < views.length; i++) {
                    showRowDock(views[i].getSelectedNodes()[0]);
                }
                grid.getSelectionModel().deselectAll();
            };
            var showRowDock = function (obj) {
                for (r = obj.firstChild; r != null; r = r.nextSibling) {
                    if (r.style.backgroundColor == "gold") {
                        r.style.backgroundColor = r.style.DefaultBackgroundColor;
                    }
                    else {
                        r.style.DefaultBackgroundColor = r.style.backgroundColor;
                        r.style.backgroundColor = "gold";
                    }
                }
            };
    
        </script>
        <style type="text/css">
            .TotalTitle
            {
                background-color: #F9F98C;
            }
            .Title
            {
                text-align: center;
            }
            .DateRow .x-change-cell
            {
                background-color: #AFD6FF;
            }
            .CompareRow .x-change-cell
            {
                background-color: #FEFFAF;
                border-bottom: 1px solid black;
            }
            .lower80Row .x-change-cell
            {
                background-color: #FFCDE5;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server">
        </ext:ResourceManager>
        <div>
            <ext:Viewport ID="Viewport1" runat="server" Layout="BorderLayout">
                <Items>
                    <ext:Toolbar ID="Toolbar1" runat="server" Region="North">
                        <Items>
                            <ext:Button ID="btnGo" Text="GO" runat="server" Icon="NextBlue">
                                <DirectEvents>
                                    <Click OnEvent="btnGo_ClickEvent" Timeout="999999">
                                        <EventMask ShowMask="true" />
                                    </Click>
                                </DirectEvents>
                            </ext:Button>
                        </Items>
                    </ext:Toolbar>
                    <ext:TabPanel ID="TabPanel1" runat="server" Region="Center">
                        <Items>
                            <ext:GridPanel ID="gpbAll" runat="server" Title="ALL" Header="true" Border="true"
                                EmptyText="no data." Region="Center">
                                <View>
                                    <ext:GridView EmptyText="no data." runat="server" ID="gdView">
                                        <GetRowClass Fn="getRowClass" />
                                    </ext:GridView>
                                </View>
                                <LockedView>
                                    <ext:GridView runat="server" ID="testLockView">
                                    </ext:GridView>
                                </LockedView>
                                <Listeners>
                                    <ItemDblClick Fn="showHighLight" />
                                </Listeners>
                                <BottomBar>
                                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" DisplayInfo="true" EmptyMsg="No data."
                                        DisplayMsg="Displaying." />
                                </BottomBar>
                                <Store>
                                    <ext:Store ID="Store1" PageSize="300" runat="server" AutoLoad="false">
                                        <Model>
                                            <ext:Model ID="Model1" runat="server" />
                                        </Model>
                                    </ext:Store>
                                </Store>
                            </ext:GridPanel>
                        </Items>
                    </ext:TabPanel>
                </Items>
            </ext:Viewport>
        </div>
        </form>
    </body>
    </html>
    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;   
    public partial class Module_AanalysisReport_ActivityReportReport : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {      
        }     
       
    
        protected void btnGo_ClickEvent(object sender, DirectEventArgs e)
        {
            DataTable dataTable = getDatetable();
            if (dataTable.Rows.Count > 0)
            {
                LoadDynamicGrid(dataTable, Store1, gpbAll);
            }
            else
            {
                gpbAll.Refresh();
            }
        }
        private void LoadDynamicGrid(DataTable dataTable, Store store1, GridPanel grid)
        {
            Ext.Net.ColumnCollection Collection = new ColumnCollection();
            foreach (DataColumn column in dataTable.Columns)
            {
                ModelField modeField = new ModelField();
                modeField.Name = column.ColumnName;
                modeField.Type = ModelFieldType.String;
                Column extcolumn = new Column();
                extcolumn.Align = Alignment.Center;
                extcolumn.Text = column.ColumnName;
                extcolumn.DataIndex = column.ColumnName;
                extcolumn.TdCls = "x-change-cell";
                store1.AddField(modeField);
                extcolumn.Sortable = false;
                Collection.Add(extcolumn);
            }
            grid.EnableLocking = true;
            foreach (Column column in Collection)
            {
                if (column.Text == "test1")
                {
                    column.Lockable = true;
                    column.Locked = true;
                }    
            }
            store1.RebuildMeta();
            store1.DataSource = dataTable.DefaultView;
            store1.DataBind();
            grid.ColumnModel.Columns.Add(Collection);
            if (X.IsAjaxRequest)
            {
                grid.Reconfigure();
            }
        }    
        private DataTable getDatetable()
        {
            DataTable table = new DataTable();
            table.Columns.Add("test1", typeof(String));
            table.Columns.Add("test2", typeof(String));
            table.Columns.Add("test3", typeof(String));
            table.Columns.Add("test4", typeof(String));
            table.Rows.Add("aaa", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa1", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa2", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa3", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa1", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa2", "bbb", "ccc", "dddd");
            table.Rows.Add("aaa3", "bbb", "ccc", "dddd");      
            return table;   
        }    
    
    }
    Last edited by Daniil; Jan 29, 2014 at 4:54 AM. Reason: dynmic => dynamic
  2. #2

    Anyone

    Hi there,

    It's been several days. Is there anyone from Ext.net can help me to resolve this issue?

    TIA

    Regards,
  3. #3
    Why don't you want to set EnableLocking = true initially? Just don't set Lock=true for initial columns

Similar Threads

  1. [CLOSED] Column Locking not working when using GridPanel.Reconfigure
    By stratadev in forum 2.x Legacy Premium Help
    Replies: 3
    Last Post: May 10, 2013, 6:55 PM
  2. Replies: 4
    Last Post: Mar 02, 2013, 8:04 AM
  3. Replies: 8
    Last Post: Nov 27, 2012, 11:18 PM
  4. [CLOSED] Hide Column with Locking Column, GridView
    By osef in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Nov 22, 2012, 6:03 PM
  5. Prblem with Locking column
    By oseqat in forum 1.x Help
    Replies: 2
    Last Post: Jul 05, 2011, 9:05 AM

Posting Permissions