This is a migrated thread and some comments may be shown as answers.

FrozenColumns, Sorting and Horizontal Scrolling

1 Answer 86 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Michael
Top achievements
Rank 1
Michael asked on 28 Jul 2011, 07:57 PM
Team Telerik,

I've created a grid programatically and populate it with data.  The first two columns are frozen, and I'm able to scroll left and right with the horizontal scroll bar.  Everything looks wonderful.  However, when I click on any column header to sort the data (Frozen, or Data columns); the horizontal scroll bar disappears and the columns off screen become inaccessible.   Let me know if I've done anything wrong, below you will find my code.  When I remove FrozenColumnsCount from the code, everything works fine.  However... I do need the first two columns to be frozen.

Thanks,
Michael

protected void Page_Init(object source, System.EventArgs e)
{
    DefineGridStructure();
}
 
private void DefineGridStructure()
{
    var someTable = GetSomeTable();
 
    RadGrid radGrid1 = new RadGrid();
     
    radGrid1.ItemCommand += new GridCommandEventHandler(radGrid1_ItemCommand);
 
    radGrid1.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
    radGrid1.AutoGenerateColumns = false;
    radGrid1.ShowStatusBar = true;
    radGrid1.MasterTableView.DataKeyNames = new string[] { "Id" };
    radGrid1.DataSourceID = "ObjectDataSource1";
    radGrid1.AllowSorting = true;
    radGrid1.AllowPaging = true;
    radGrid1.PageSize = 50;
    radGrid1.Width = new Unit(99, UnitType.Percentage);
 
    radGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed;
    radGrid1.ClientSettings.Scrolling.AllowScroll = true;
    radGrid1.ClientSettings.Scrolling.UseStaticHeaders = true;
    radGrid1.ClientSettings.Scrolling.FrozenColumnsCount = 2;
    radGrid1.ClientSettings.Scrolling.SaveScrollPosition = true;
     
 
    GridBoundColumn displayFrozenColumn = new GridBoundColumn();           
    displayFrozenColumn .DataField = "Name";
    displayFrozenColumn .HeaderText = "Name";
    displayFrozenColumn .HeaderStyle.Width = new Unit(200, UnitType.Pixel);
    displayFrozenColumn .ItemStyle.Font.Bold = true;                   
    radGrid1.MasterTableView.Columns.Add(displayFrozenColumn );
 
    displayFrozenColumn = new GridBoundColumn();               
    displayFrozenColumn .DataField = "Id";
    displayFrozenColumn .HeaderText = "Id";
    displayFrozenColumn .HeaderStyle.Width = new Unit(50, UnitType.Pixel);
    displayFrozenColumn .ItemStyle.Font.Bold = true;           
    radGrid1.MasterTableView.Columns.Add(displayFrozenColumn );
 
    foreach (DataColumn dataColumn in someTable.Columns)
    {
        if (dataColumn.ColumnName == "Name" || dataColumn.ColumnName == "Id")
            continue;
 
        GridButtonColumnWithFilteringSorting displayDataColumn = new GridButtonColumnWithFilteringSorting();               
        displayDataColumn .HeaderText = dataColumn.ColumnName;
        displayDataColumn .DataTextField = dataColumn.ColumnName;
        displayDataColumn .SortExpression = dataColumn.ColumnName;
        displayDataColumn .UniqueName = dataColumn.ColumnName;
        displayDataColumn .HeaderStyle.Width = new Unit(75, UnitType.Pixel);              
 
        radGrid1.MasterTableView.Columns.Add(displayDataColumn );
    }
     
 
    PlaceHolder placeHolder1 = (PlaceHolder)RadPanelBar1.FindItemByValue("PanelItem1").FindControl("PlaceHolder1");
    placeHolder1.Controls.Add( radGrid1 );
}

1 Answer, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 03 Aug 2011, 12:35 PM
Hi Michael,

Thanks for the sample code. However, we cannot reproduce the behavior you are describing. I took the sample code you provided and put it in a sample page following a similar scenario you have. I am attaching the page for your reference. Please let me know if you manage to reproduce what you are getting in this project, and what steps to follow, so that we can test it too.

Greetings,
Pavlina
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

Tags
Grid
Asked by
Michael
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Share this question
or