Declined
Last Updated: 31 Mar 2014 10:12 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: GridView
Type: Bug Report
2
To reproduce:
- add RadGridView and fill it with data;
- use the following code for saving the layout: string layout;
using (MemoryStream ms = new MemoryStream())
{
    radGridView1.SaveLayout(ms);
    ms.Position = 0;
    byte[] buffer = new byte[ms.Length - 1];

    ms.Read(buffer, 0, buffer.Length);
    layout = Convert.ToBase64String(buffer);
    ms.Close();
}

When you try to load the saved layout, using the following code, DataException is thrown:
using (MemoryStream stream = new MemoryStream(Convert.FromBase64String(layout)))
{
    radGridView1.LoadLayout(stream);
}

Workaround: save the layout in xml file
Completed
Last Updated: 20 Feb 2014 15:14 by ADMIN
To reproduce:
- add RadGridView and use the following code:

public Form1()
{
    InitializeComponent();

    List<ColorItem> list = new List<ColorItem>();
    List<Color> colors = new List<Color>()
    {
        Color.Red,
        Color.Black,
        Color.Blue,
        Color.Pink,
        Color.Green,
        Color.Yellow,
        Color.Purple,
        Color.Aqua,
        Color.Orange,
        Color.Fuchsia
    };

    for (int i = 0; i < 10; i++)
    {
        list.Add(new ColorItem(i, colors[i], colors[i].Name));
    }

    radGridView1.DataSource = list;
    radGridView1.CellValidating += radGridView1_CellValidating;
}

private void radGridView1_CellValidating(object sender, CellValidatingEventArgs e)
{
    if (e.ActiveEditor is GridColorPickerEditor && (Color)e.Value == Color.Aqua)
    {
        e.Cancel = true;
    }
}

Steps: 
1. Select the "Color" column of a certain cell and activate the editor;
2. Select Color.Aqua and press Tab to close the currently active GridColorPickerEditor;
As a result InvalidCastException is thrown.

Workaround: use a custom editor derivative of BaseGridEditor:
radGridView1.EditorRequired += radGridView1_EditorRequired;

private void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e)
{
    if (e.EditorType == typeof(GridColorPickerEditor))
    {
        e.Editor = new CustomColorEditor();
    }
}

public class CustomColorEditor : BaseGridEditor
{
    TypeConverter converter = TypeDescriptor.GetConverter(typeof(Color));

    protected override Telerik.WinControls.RadElement CreateEditorElement()
    {
        return new GridColorPickerElement();
    }

    public override object Value
    {
        get
        {
            GridColorPickerElement editorElement = this.EditorElement as GridColorPickerElement;
            return editorElement.GetColorValue();
        }
        set
        {
            GridColorPickerElement editorElement = this.EditorElement as GridColorPickerElement;
            if (value is Color)
            {
                editorElement.SetColorValue((Color)value);
            }
            else if (value is string)
            {
                editorElement.SetColorValue((Color)converter.ConvertFromString((string)value));
            }
        }
    }
}
Completed
Last Updated: 31 Mar 2014 09:22 by Jesse Dyck
To reproduce: 
-add RadGridView with 2 columns - ID and Name; 
-add RadButton and use the following code:
public Form1() { InitializeComponent(); AddSelfReferencingColumns(grid, "Id", "Parent.Id"); this.grid.DataSource = TestDataGenerator.GenerateTestData(); } public void AddSelfReferencingColumns(RadGridView grid, string childKey, string parentKey) { GridViewTextBoxColumn col1 = new GridViewTextBoxColumn("hiddenColumnId", childKey); GridViewTextBoxColumn col2 = new GridViewTextBoxColumn("hiddenColumnParentId", parentKey); grid.MasterTemplate.Columns.Add(col1); grid.MasterTemplate.Columns.Add(col2); grid.Columns["hiddenColumnId"].IsVisible = false; grid.Columns["hiddenColumnParentId"].IsVisible = false; grid.Relations.AddSelfReference(grid.MasterTemplate, "hiddenColumnId", "hiddenColumnParentId"); } void refreshButton_Click(object sender, System.EventArgs e) { this.grid.DataSource = TestDataGenerator.GenerateTestData(); } class TestDataGenerator { public static IList<TestObject> GenerateTestData() { IList<TestObject> result = new List<TestObject>(); TestObject top = new TestObject { Id = 1, Name = "Top" }; result.Add(top); for (int i = 1; i < 4; i++) { TestObject firstChild = new TestObject() { Id = 10 * i, Name = string.Format("First level child {0}", i), Parent = top }; result.Add(firstChild); for (int j = 1; j < 10; j++) { TestObject secondChild = new TestObject() { Id = 10 * i + j, Name = string.Format("Second level child {0}", j), Parent = firstChild }; result.Add(secondChild); } } return result; } } class TestObject { public long Id { get; set; } public string Name { get; set; } public TestObject Parent { get; set; } }

Steps to reproduce: 1.Type in Name column filter i.e. "F" 2.Press refresh button. The grid is empty, even though the new list contains the same data (different objects).

Workaround: void refreshButton_Click(object sender, System.EventArgs e) { FilterDescriptorCollection filters = new FilterDescriptorCollection(); foreach (FilterDescriptor filterItem in this.grid.FilterDescriptors) { filters.Add(filterItem); } this.grid.DataSource = TestDataGenerator.GenerateTestData(); this.grid.FilterDescriptors.Clear(); foreach (FilterDescriptor filter in filters) { this.grid.FilterDescriptors.Add(filter); } }
Completed
Last Updated: 31 Mar 2014 10:10 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce: 
-add RadGridView and use the following code: public Form1() { InitializeComponent(); radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; radGridView1.AddNewRowPosition = SystemRowPosition.Bottom; radGridView1.Columns.Add("A"); radGridView1.Columns.Add("B"); radGridView1.Columns.Add("C"); radGridView1.CellValidating += radGridView1_CellValidating; } void radGridView1_CellValidating(object sender, CellValidatingEventArgs e) { if ((string)e.Value == "11") { e.Cancel = true; } } Follow the steps: 1. First go to A and enter some value, hit TAB and go to B and enter some value. 2. Hit TAB and move to C. 3. Enter "11". 4. Hit TAB. Validation fails, but the new row is entered (calling radGridView1_RowValidating and ignoring e.Cancel = true; of radGridView1_CellValidating) 5. The erroneous value is copied to Column C in the new "new row". 6. radGridView1_CellValidating is called again.

Workaround: 
BaseGridBehavior gridBehavior = radGridView1.GridBehavior as BaseGridBehavior; gridBehavior.UnregisterBehavior(typeof(GridViewNewRowInfo)); gridBehavior.RegisterBehavior(typeof(GridViewNewRowInfo), new CustomGridNewRowBehavior()); public class CustomGridNewRowBehavior : GridNewRowBehavior { protected override bool ProcessTabKey(KeyEventArgs keys) { GridViewNewRowInfo newRowInfo = (GridViewNewRowInfo)this.GridViewElement.CurrentRow; if (newRowInfo.PinPosition == PinnedRowPosition.Bottom || newRowInfo.RowPosition == SystemRowPosition.Bottom) { FieldInfo fi = this.GridControl.GridBehavior.GetType().GetField("defaultRowBehavior", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); GridRowBehavior rowBehavior = fi.GetValue(this.GridControl.GridBehavior) as GridRowBehavior; MethodInfo mi = rowBehavior.GetType().GetMethod("ProcessTabKey", BindingFlags.NonPublic | BindingFlags.Instance); return (bool)mi.Invoke(rowBehavior, new object[] { keys }); } return base.ProcessTabKey(keys); } }
Completed
Last Updated: 27 May 2014 10:19 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce:
Add a RadGridView with a GridViewComboBoxColumn and add 70000 items as datasource. You will notice that openning it is slow.

Workaround:

Use the following custom editor:

public class MyEditor : RadDropDownListEditor
{
    protected override RadElement CreateEditorElement()
    {
        return new MyEditorElement()
        {
            SyncSelectionWithText = false
        };
    }
}

public class MyEditorElement : RadDropDownListEditorElement
{
    public override void NotifyOwner(PopupEditorNotificationData notificationData)
    {
        if (notificationData.notificationContext == PopupEditorNotificationData.Context.TextChanged && !this.SyncSelectionWithText)
        {
            return;
        }

        base.NotifyOwner(notificationData);
    }
}
Completed
Last Updated: 12 Mar 2014 11:07 by ADMIN
To reproduce: - Subscribe to the grids KeyDown event. - You will notice that KeyDown event is not fired when the control key is pressed. 

Workaround: - Use the KeyUp event instead. - Also setting the ClipboardCopyMode property to disabled will activate the event for this case. 
Completed
Last Updated: 20 Aug 2015 10:34 by ADMIN
To reproduce: Create a RadGridView and set its view to ColumnGroupsViewDefinition following this article - http://www.telerik.com/help/winforms/gridview-viewdefinitions-column-groups-view.html. The text in the headers long enough so it does not fit in the cells. Using the ViewCellFormatting event set each cell's TextWrap property to true. You will notice that the header cells are not being TextWrapped 
Completed
Last Updated: 12 Mar 2014 13:32 by ADMIN
Add the ability to access the ColumnChooser opening in order to set its properties. Currently, every time when the user opens the ColumnChoser new instance is created and because of this its properties and events are no longer available. This feature will 

Resolution:
Add the ColumnChooserCreated event which access and  allow to customize the ColumnChooser. 

//subscribe to the event ColumnChooserCreated
this.radGridView1.ColumnChooserCreated += new ColumnChooserCreatedEventHandler(radGridView1_ColumnChooserCreated);
			
//customize the ColumnChooser
void radGridView1_ColumnChooserCreated(object sender, Telerik.WinControls.UI.ColumnChooserCreatedEventArgs e)
{
    e.ColumnChooser.ForeColor = Color.DarkGreen;
    e.ColumnChooser.Text = "My title";
    e.ColumnChooser.ColumnChooserControl.ColumnChooserElement.Font = this.Font;
    e.ColumnChooser.ColumnChooserControl.ColumnChooserElement.Text = "My text";
}
Completed
Last Updated: 31 Mar 2014 10:12 by ADMIN
ConditionalFormattingObjects should be cleared or they should be applied after rebinding completes. 

WORKAROUND: save the ConditionalFormattingObjects, reset the data source and then restore them in order to overcome the observed error:
Completed
Last Updated: 13 Mar 2014 10:54 by ADMIN
To reproduce:
Add a RadGridView wth a few columns ,add rows as a few rows should have increasingly long text. Right click on the header cell to show the context menu and click bestfit. You will notice that the size of the column is not correct

Workaround: void grid_MouseMove(object sender, MouseEventArgs e) { this.mouseLocation = e.Location; } private Point mouseLocation; private GridViewColumn currentColumn; void grid_ContextMenuOpening(object sender, ContextMenuOpeningEventArgs e) { if (this.grid.CurrentRow is GridViewHierarchyRowInfo) { RadItem bestFitItem = e.ContextMenu.Items.FirstOrDefault(x => x.Text == "Best Fit"); if (bestFitItem != null) { e.ContextMenu.Items.Remove(bestFitItem); } RadMenuItem newBestFitItem = new RadMenuItem { Text = "Best Fit" }; this.currentColumn = (this.grid.ElementTree.GetElementAtPoint(this.mouseLocation) as GridCellElement).ColumnInfo; newBestFitItem.Click += newBestFitItem_Click; e.ContextMenu.Items.Add(newBestFitItem); } } void newBestFitItem_Click(object sender, EventArgs e) { int highestWidth = this.GetHeightestWidthFromColumn(this.currentColumn); this.currentColumn.Width = highestWidth; } private int GetHeightestWidthFromColumn(GridViewColumn gridViewColumn) { int max = int.MinValue; Font cellFont = this.grid.TableElement.VisualRows[0].VisualCells[0].Font; for (int i = 0; i < this.grid.Rows.Count; i++) { int textWidth = TextRenderer.MeasureText(this.grid.Rows[i].Cells[gridViewColumn.Index].Value + "", cellFont).Width; if (max < textWidth) { max = textWidth; } } return max; }
Completed
Last Updated: 21 Mar 2014 08:00 by ADMIN
To reproduce:
- Add MultiColumnComboBoxColumn to a blank grid.
- Subscribe to the SelectedIndexChanged event of the corresponding ActiveEditor (RadMultiColumnComboBoxElement).
- You will notice that when you select different cells the event is fired several times.
Completed
Last Updated: 31 Mar 2014 09:22 by ADMIN
To reproduce: - add RadGridView and populate manually with hierarchical data; 

- BestFitColumns method of the child template does not work as expected; 

#1 scenario: radGridView1.MasterTemplate.ExpandAll(); radGridView1.Templates[0].ExpandAll(); radGridView1.Templates[0].BestFitColumns(BestFitColumnMode.AllCells); You will notice that some of the columns in the child template are not wide enough to show the whole cell content; 

#2 scenario: Subscribe to the ChildViewExpanded event and call BestFitColumns: private void radGridView1_ChildViewExpanded(object sender, ChildViewExpandedEventArgs e) { e.ChildViewInfo.ViewTemplate.BestFitColumns(BestFitColumnMode.AllCells); } 

As a result the firstly expanded child view adjusts child template columns width and if you expand another child view which needs greater columns width, it is not displayed correctly. 

Workaround: determine the column width according to the longest cell content: foreach (GridViewDataColumn col in radGridView1.Templates[0].Columns) { BestFitAllCells(col); } private void BestFitAllCells(GridViewColumn column) { MasterGridViewTemplate masterTemplate = column.OwnerTemplate.Parent as MasterGridViewTemplate; if (masterTemplate == null) { return; } RadGridView grid = masterTemplate.Owner; IVirtualizedElementProvider<GridViewRowInfo> rowProvider = grid.TableElement.RowElementProvider; IVirtualizedElementProvider<GridViewColumn> cellProvider = grid.TableElement.ColumnScroller.ElementProvider; float width = 0; foreach (GridViewRowInfo dataRow in column.OwnerTemplate.Rows) { GridRowElement row = rowProvider.GetElement(dataRow, null) as GridRowElement; row.InitializeRowView(grid.TableElement); row.Initialize(dataRow); row.UpdateInfo(); grid.TableElement.Children.Add(row); row.ResetLayout(true); GridVirtualizedCellElement cell = cellProvider.GetElement(column, row) as GridVirtualizedCellElement; cell.Attach(column, row); cell.SetContent(); cell.UpdateInfo(); row.Children.Add(cell); GridHeaderCellElement headerCell = cell as GridHeaderCellElement; if (headerCell != null) { headerCell.UpdateArrowState(); } cell.ResetLayout(true); width = Math.Max(width, this.GetCellDesiredWidth(cell)); row.Children.Remove(cell); grid.TableElement.Children.Remove(row); this.Detach(cellProvider, cell); this.Detach(rowProvider, row); } width = Math.Max(width, TextRenderer.MeasureText(column.HeaderText, grid.Font).Width); column.Width = (int)width; } private float GetCellDesiredWidth(GridCellElement cell) { cell.Measure(new SizeF(float.PositiveInfinity, float.PositiveInfinity)); return cell.DesiredSize.Width; } private void Detach(IVirtualizedElementProvider<GridViewColumn> elementProvider, GridCellElement cell) { GridVirtualizedCellElement virtualizedCell = cell as GridVirtualizedCellElement; if (virtualizedCell != null) { elementProvider.CacheElement(virtualizedCell); virtualizedCell.Detach(); return; } cell.Dispose(); } private void Detach(IVirtualizedElementProvider<GridViewRowInfo> elementProvider, GridRowElement row) { GridVirtualizedRowElement virtualizedRоw = row as GridVirtualizedRowElement; if (virtualizedRоw != null) { elementProvider.CacheElement(virtualizedRоw); virtualizedRоw.Detach(); return; } row.Dispose(); } 
Completed
Last Updated: 31 Mar 2014 09:21 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
2
To reproduce: 
- add RadGridView and populate it manually with hierarchical data; 
- open one row child rows and select several child rows; 
- right click to open the context menu and select Copy; 
- paste in Notepad for example. As a result there is no pasted data. 

Workaround: 
radGridView1.ContextMenuOpening += radGridView1_ContextMenuOpening; 
string clipBoard = string.Empty;
RadGridView contextMenuInvoker;

void radGridView1_ContextMenuOpening(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e) 
        {
            RadGridView grid = sender as RadGridView;
            if (grid.CurrentCell is GridDataCellElement || grid.CurrentCell is GridTableBodyElement)
            {
                if (grid.CurrentRow.ViewTemplate != grid.MasterGridViewTemplate && !(grid.CurrentCell.RowInfo is GridViewNewRowInfo))
                {
                    RadMenuItem itemCopy = new RadMenuItem();
                    itemCopy.Text = "Copy Row(s)";
                    itemCopy.Click += new EventHandler(itemCopy_Click);
                    e.ContextMenu.Items.RemoveAt(3);
                    e.ContextMenu.Items.Insert(3, itemCopy);
                    e.ContextMenu.Items.RemoveAt(4);
                }
                contextMenuInvoker = grid;
            }
        }

        void itemCopy_Click(object sender, EventArgs e)
        {
            CopyRows(contextMenuInvoker);
        }

        private void CopyRows(RadGridView radGridView)
        {
            StringBuilder sb = new StringBuilder();
            foreach (GridViewRowInfo row in radGridView.SelectedRows)
            {
                int i = 0;
                while (i < row.Cells.Count)
                {
                    if (i > 0)
                    {
                        sb.Append(",");
                    }
                    sb.Append(row.Cells[i].Value.ToString());
                    i++;
                }
                sb.AppendLine(";");
            }
            clipBoard = sb.ToString();
            Clipboard.SetDataObject(clipBoard);
        }
Completed
Last Updated: 11 Dec 2015 14:55 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: GridView
Type: Bug Report
0
To reproduce:
- add RadGridView with several columns and rows and export the grid to pdf file.
- open the exported PDF file with Foxit Reader version 2.2. The opened file is blank.
Completed
Last Updated: 12 Nov 2013 05:14 by ADMIN
Completed
Last Updated: 14 Mar 2014 06:32 by ADMIN
To reproduce:
Add a RadGridView with a ComboBoxColumn, add a datasource, use the following code on CellEditorInitializedEvent:
void GridView_CellEditorInitialized(object sender, GridViewCellEventArgs e)
{
    GridViewComboBoxColumn column = e.Column as GridViewComboBoxColumn;
    if (column != null)
    {
        RadDropDownListEditor editor = e.ActiveEditor as RadDropDownListEditor;
        if (editor != null)
        {
            RadDropDownListEditorElement editorElement = editor.EditorElement as RadDropDownListEditorElement;
            if (editorElement != null)
            {
                editorElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            }
        }
    }
}

Run the project, select a value from one of the dropdowns, start editing, press backspace, press the key which corresponds to the deleted character, for example if the last character was '2', press the key '2'. You will notice that the key will be ignored.

Workaround:

void GridView_CellEditorInitialized(object sender, GridViewCellEventArgs e)
{
    GridViewComboBoxColumn column = e.Column as GridViewComboBoxColumn;
    if (column != null)
    {
        RadDropDownListEditor editor = e.ActiveEditor as RadDropDownListEditor;
        if (editor != null)
        {
            RadDropDownListEditorElement editorElement = editor.EditorElement as RadDropDownListEditorElement;
            editorElement.TextBox.KeyPress -= TextBox_KeyPress;
            editorElement.TextBox.KeyPress += TextBox_KeyPress;
            if (editorElement != null)
            {
                editorElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            }
        }
    }
}

private MethodInfo baseMethod = null;

void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (char.IsLetterOrDigit(e.KeyChar))
    {
        RadDropDownListEditorElement editorElement = ((this.GridView.ActiveEditor as RadDropDownListEditor).EditorElement as RadDropDownListEditorElement);
        MethodInfo method = baseMethod == null ? 
            baseMethod = typeof(AutoCompleteAppendHelper).GetMethod("SetEditableElementText", 
            System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
            : baseMethod;

        InvokeNotOverride(method, editorElement.AutoCompleteAppend, editorElement.AutoCompleteAppend.FindShortestString(editorElement.Text + e.KeyChar));
        editorElement.TextBox.TextBoxItem.TextBoxControl.SelectionStart = editorElement.Text.Length;
    }
}

public object InvokeNotOverride(MethodInfo methodInfo,
                object targetObject, params object[] arguments)
{
    var parameters = methodInfo.GetParameters();

    if (parameters.Length == 0)
    {
        if (arguments != null && arguments.Length != 0)
            throw new Exception("Arguments cont doesn't match");
    }
    else if (parameters.Length != arguments.Length)
    {
        throw new Exception("Arguments cont doesn't match");
    }

    Type returnType = null;
    if (methodInfo.ReturnType != typeof(void))
    {
        returnType = methodInfo.ReturnType;
    }

    var type = targetObject.GetType();
    var dynamicMethod = new DynamicMethod("", returnType,
            new Type[] { type, typeof(Object) }, type);

    var iLGenerator = dynamicMethod.GetILGenerator();
    iLGenerator.Emit(OpCodes.Ldarg_0);

    for (var i = 0; i < parameters.Length; i++)
    {
        var parameter = parameters[i];

        iLGenerator.Emit(OpCodes.Ldarg_1);

        iLGenerator.Emit(OpCodes.Ldc_I4_S, i);
        iLGenerator.Emit(OpCodes.Ldelem_Ref);

        var parameterType = parameter.ParameterType;
        if (parameterType.IsPrimitive)
        {
            iLGenerator.Emit(OpCodes.Unbox_Any, parameterType);
        }
        else
        {
            iLGenerator.Emit(OpCodes.Castclass, parameterType);
        }
    }

    iLGenerator.Emit(OpCodes.Call, methodInfo);
    iLGenerator.Emit(OpCodes.Ret);

    return dynamicMethod.Invoke(null, new object[] { targetObject, arguments });
}
Completed
Last Updated: 05 Nov 2013 04:39 by ADMIN
Workaround: add the option and the logic for it in the ContextMenuOpening event
Completed
Last Updated: 31 Mar 2014 09:20 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce: 
-add RadDock with ToolWindow; 
-add RadGridView inside the ToolWindow; 
-apply Office2010Blue theme to the entire application; 
By default the GridDataCellElement has Font Segoe UI, 8.25pt with blue fore color. When the ToolWindow is floating, GridDataCellElement's font is changed to Microsoft Sans Serif, 8.25pt with black fore color.

Workaround: customize the theme by setting the appropriate font and fore color to the GridDataCellElement for the necessary element states.
Completed
Last Updated: 31 Mar 2014 09:21 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce: 1.Bind RadGridView to hierarchical data - no vertical scroll-bar is visible. 2.Select a certain row and expand the child template (click the expander) - vertical scroll-bar appears. 3.Scroll several rows downwards. 4.Click the expander to close the child template (the vertical scroll-bar should hide). As a result the selected row is changed.

Workaround: follow the approach below: GridViewHierarchyRowInfo row = null; bool keepParentRow = false; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.productsTableAdapter.Fill(this.nwindDataSet.Products); this.categoriesTableAdapter.Fill(this.nwindDataSet.Categories); radGridView1.AutoGenerateHierarchy = true; radGridView1.DataSource = this.nwindDataSet; radGridView1.DataMember = "Categories"; radGridView1.CurrentRowChanging += radGridView1_CurrentRowChanging; radGridView1.ChildViewExpanded += radGridView1_ChildViewExpanded; radGridView1.MouseDown += radGridView1_MouseDown; } private void radGridView1_CurrentRowChanging(object sender, CurrentRowChangingEventArgs e) { RadGridView grid = sender as RadGridView; if (grid != null && row != null && keepParentRow) { e.Cancel = true; } } private void radGridView1_MouseDown(object sender, MouseEventArgs e) { RadGridView grid = sender as RadGridView; if (grid != null) { GridExpanderItem expander = grid.ElementTree.GetElementAtPoint(e.Location) as GridExpanderItem; if (expander != null && row != null) { keepParentRow = true; } else { keepParentRow = false; } } } private void radGridView1_ChildViewExpanded(object sender, Telerik.WinControls.UI.ChildViewExpandedEventArgs e) { RadGridView grid = sender as RadGridView; if (grid != null && e.IsExpanded == false) { row = e.ParentRow as GridViewHierarchyRowInfo; } }
Completed
Last Updated: 11 Dec 2015 14:55 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: GridView
Type: Feature Request
0
Description: use RadGridView with a lot of columns (e.g. 50) that the horizontal scroll-bar appears. When exporting to PDF, the columns should be rendered correctly like in RadGridView Multi-Page printing.