Unplanned
Last Updated: 28 Oct 2022 12:36 by Daniel

In this case, the GridViewCheckBoxColumn is nullable bool? property and the ThreeState property is set to true. When we try to use the filter context menu to filter the cell by null values, the filter is not applied.

Unplanned
Last Updated: 25 Oct 2022 09:03 by ADMIN

Steps to reproduce:

1. Please run the attached sample project

2. Filter grid so only one row is left

3.Copy the first cell with the content menu. The following error occurs:

************** Exception Text **************
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Telerik.WinControls.UI.MasterGridViewTemplate.CopySelected(GridViewCellInfo[] cells, String format, Boolean cut, Boolean cutOperation, StringBuilder content) in C:\Work\Development\RadControls\RadGridView\Code\Data\MasterGridViewTemplate.cs:line 1491
   at Telerik.WinControls.UI.MasterGridViewTemplate.ProcessContent(String format, Boolean cut, Boolean cutOperation) in C:\Work\Development\RadControls\RadGridView\Code\Data\MasterGridViewTemplate.cs:line 1291
   at Telerik.WinControls.UI.MasterGridViewTemplate.CopyContent(Boolean cut) in C:\Work\Development\RadControls\RadGridView\Code\Data\MasterGridViewTemplate.cs:line 1256
   at Telerik.WinControls.UI.MasterGridViewTemplate.Copy() in C:\Work\Development\RadControls\RadGridView\Code\Data\MasterGridViewTemplate.cs:line 2066
   at Telerik.WinControls.UI.GridDataCellElement.ItemCopy_Click(Object sender, EventArgs e) in C:\Work\Development\RadControls\RadGridView\Code\UI\GridViews\TableView\Cells\GridDataCellElement.cs:line 380
   at Telerik.WinControls.RadElement.OnClick(EventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5096
   at Telerik.WinControls.UI.RadButtonItem.OnClick(EventArgs e) in C:\Work\Development\RadControls\RadControlsUI\UIElements\Buttons\RadButtonItem.cs:line 566
   at Telerik.WinControls.UI.RadMenuItem.OnClick(EventArgs e) in C:\Work\Development\RadControls\RadControlsUI\Menu\RadMenuItem.cs:line 685
   at Telerik.WinControls.RadElement.DoClick(EventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5160
   at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 4274
   at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadItem.cs:line 779
   at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 4181
   at Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5273
   at Telerik.WinControls.RadElement.CallDoMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5495
   at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Control\ComponentInputBehavior.cs:line 75
   at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Control\RadControl.cs:line 1206
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m) in C:\Work\Development\RadControls\RadControl\TPF\Control\RadControl.cs:line 1550
   at Telerik.WinControls.UI.RadPopupControlBase.WndProc(Message& m) in C:\Work\Development\RadControls\RadControlsUI\GenericPopup\RadPopupControlBase.cs:line 795
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Unplanned
Last Updated: 11 Oct 2022 11:31 by ADMIN

GridViewCellInfo offers Style property which allows you to customize the style for the cells defined at the data cell's level: https://docs.telerik.com/devtools/winforms/controls/gridview/cells/formating-examples/style-property

This functionality should work for the header cells as well like this:

            GridViewCellInfo cell = this.radGridView1.MasterView.TableHeaderRow.Cells[0];
            cell.Style.CustomizeFill = true;
            cell.Style.GradientStyle = GradientStyles.Solid;
            cell.Style.BackColor = System.Drawing.Color.FromArgb(162, 215, 255);

 

Unplanned
Last Updated: 19 Sep 2022 07:58 by Ark Technologies
When the Space key is pressed GridCheckBoxCellElement enters edit mode although the EditMode property is set to OnValueChange. 
Unplanned
Last Updated: 08 Jun 2022 07:52 by Suresh

Use the following code snippet:

        public RadForm1()
        {
            InitializeComponent();
            this.radGridView1.Columns.Add("TextColumn");
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

            for (int i = 0; i < 30; i++)
            {
                this.radGridView1.Rows.Add(Guid.NewGuid().ToString());
            }
            this.radGridView1.CellValidating += radGridView1_CellValidating;

            this.radGridView1.EditorManager.CloseEditorWhenValidationFails = false;
        }

        private void radGridView1_CellValidating(object sender, CellValidatingEventArgs e)
        {
            if (e.Value == null || e.Value == "")
            {
                e.Cancel = true;
                RadMessageBox.Show("Value can't be empty!");
            }
        }

Steps:

1. Clear the value of a cell

2. While the editor is active with an empty value, click the vertical scrollbar to trigger scrolling.

Actual: the scrolling is performed and the editor is closed with the previous value no matter when the validation fails and the CloseEditorWhenValidationFails property is set to false.

Expected: the scrolling should be blocked if the validation fails. We should offer the same behavior when scrolling with the mouse wheel, clicking another cell or clicking the vertical scrollbar (or any of its elements).

Workaround: 

        public class MyGrid : RadGridView
        {
            public override string ThemeClassName
            {
                get
                {
                    return typeof(RadGridView).FullName;
                }
            }

            protected override void OnMouseDown(MouseEventArgs e)
            {
                RadScrollBarElement scrollBarAtPoint = GetScrollbarElementAtPoint<RadScrollBarElement>(this.GridViewElement.ElementTree, e.Location) as RadScrollBarElement;
                GridViewEditManager editManager = this.EditorManager;
                if (scrollBarAtPoint != null && this.ActiveEditor != null && !editManager.CloseEditorWhenValidationFails)
                {
                    bool isClosed = editManager.CloseEditor();
                    if (!isClosed)
                    {
                        return;
                    }
                }
                base.OnMouseDown(e);
            }

            internal T GetScrollbarElementAtPoint<T>(RadElementTree componentTree, Point point) where T : RadElement
            {
                if (componentTree != null)
                {
                    RadElement elementUnderMouse = componentTree.GetElementAtPoint(point);

                    while (elementUnderMouse != null)
                    {
                        T item = elementUnderMouse as T;

                        if (item != null)
                        {
                            return item;
                        }

                        elementUnderMouse = elementUnderMouse.Parent;
                    }
                }

                return null;
            }
        }

 

 

Unplanned
Last Updated: 21 Mar 2022 10:04 by ADMIN
To reproduce: please run the attached sample project and follow the steps illustrated in the attached gif file:

Scrolling to a newly added row does not work when inner templates are visible.

Add data to the inner templates of several rows near the bottom using the button.
Expand these inner templates so they are all visible.
Scroll back up to the top.
Add a new item to the outer grid normally.
The table will jump to where it things the new item is but will fall short, instead scrolling to a location in one of the inner templates.
Workaround:

        private void RadGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
        {
            foreach (GridViewRowInfo    row in this.radGridView1.Rows)
            {
                if (row.IsExpanded)
                {
                    row.IsExpanded = false;
                    row.IsExpanded = true;
                }
            }
        }
Unplanned
Last Updated: 14 Feb 2022 11:44 by Victor

Use the following code snippet:

            GridViewDateTimeColumn orderDate = this.radGridView1.Columns["OrderDate"] as GridViewDateTimeColumn;
            orderDate.Format = DateTimePickerFormat.Custom;
            orderDate.CustomFormat = "dd-MM-yyyy";
            orderDate.FormatString = "{0:dd-MM-yyyy}";


            GridViewDateTimeColumn shippedDate = this.radGridView1.Columns["ShippedDate"] as GridViewDateTimeColumn;
            shippedDate.Format = DateTimePickerFormat.Custom;
            shippedDate.CustomFormat = "dd-MM-yyyy";
            shippedDate.FormatString = "{0:dd-MM-yyyy}";

When the grid is grouped by a column with a specific format, it should be taken in consideration by the group row as well.

 

Unplanned
Last Updated: 25 Jan 2022 09:46 by ADMIN
The attached gif file illustrates the current behavior. Pressing Enter while editing the criteria nodes tries to submit the filter dialog even though the filter expression may not be valid.
Unplanned
Last Updated: 09 Dec 2021 14:57 by ADMIN

Use the following code snippet:

public RadForm1()
{
    InitializeComponent();

    GridViewDecimalColumn idColumn = new GridViewDecimalColumn("Id");
    this.radGridView1.Columns.Add(idColumn);
    GridViewTextBoxColumn nameColumn = new GridViewTextBoxColumn("Name");
    this.radGridView1.Columns.Add(nameColumn);
    GridViewDateTimeColumn dateColumn = new GridViewDateTimeColumn("Date");
    dateColumn.FilteringMode = GridViewTimeFilteringMode.Date;
    dateColumn.Format = DateTimePickerFormat.Custom;
    dateColumn.CustomFormat = "dd/MM/yyyy";
    dateColumn.FormatString = "{0:dd/MM/yyyy}";
    this.radGridView1.Columns.Add(dateColumn);
    this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

    for (int i = 0; i < 50; i++)
    {
        this.radGridView1.Rows.Add(i,"Row"+i,DateTime.Now.AddDays(i));
    }

    this.radGridView1.EnableFiltering = true;
    this.radGridView1.ShowHeaderCellButtons = true;
    this.radGridView1.ShowFilteringRow = false;

    this.radGridView1.FilterExpressionChanged += RadGridView1_FilterExpressionChanged;
}

private void RadGridView1_FilterExpressionChanged(object sender, FilterExpressionChangedEventArgs e)
{
    Console.WriteLine(e.FilterExpression);
}

 If I use the calendar control then the sequence works:

Click the filter button
Click Available filters
Click Equals
Click the calendar button in the value field
Click on December 10, 2021

But if I do not use the calendar control then it does not work. This sequence produces no results:

Click the filter button
Click Available filters
Click Equals
Click on the day component of the value field
Type in 10
Click OK

Workaround:

        private void RadGridView1_CreateCompositeFilterDialog(object sender, GridViewCreateCompositeFilterDialogEventArgs e)
        {
            e.Dialog = new CustomCompositeDataFilterForm();
        }

        public class CustomCompositeDataFilterForm : CompositeDataFilterForm
        {
            protected override void OnClosing(CancelEventArgs e)
            {
                base.OnClosing(e);
                if (GridFilterCellElement.ValidateUserFilter(this.FilterDescriptor))
                {
                    CompositeFilterDescriptor cfd = this.FilterDescriptor as CompositeFilterDescriptor;
                    if (cfd != null)
                    {
                        foreach (FilterDescriptor fd in cfd.FilterDescriptors)
                        {
                            TrimTimePart(fd);
                        }
                    }
                    else
                    {
                        TrimTimePart(this.FilterDescriptor);
                    }
                   
                }
            }

            private void TrimTimePart(FilterDescriptor filterDescriptor)
            {
                CompositeFilterDescriptor cfd = filterDescriptor as CompositeFilterDescriptor;
                if (cfd != null)
                {
                    foreach (FilterDescriptor fd in cfd.FilterDescriptors)
                    {
                        TrimTimePart(fd);
                    }
                }
                else
                {
                    DateTime dateValue = DateTime.MinValue;
                    if (DateTime.TryParse(filterDescriptor.Value + "", out dateValue))
                    {
                        dateValue = dateValue.Date;
                       filterDescriptor.Value = dateValue;
                    }
                }
            }
        }

Unplanned
Last Updated: 28 Oct 2021 14:07 by Rune Toft

There are situations where SelectedRows won't return the number of rows preselected when using Begin/EndUpdate even though it seems like there's a row selected in the UI. By preselected I mean the row that looks selected after the rows has been added. This bug has caused some problems for us because the user tried some action on a row they thought was preselected and it would fail.

One situation I found where this bug can be reproducted is by using SortOrder in combination of Begin/EndUpdate. There are probably more situations but I hope this one will let you find the underlying bug.

The attached project contains a simple form with a RadGridView which will contain a list of persons. The list is populated by this method:

public void PopulateGridView(List<Person> persons)
{
	PersonGridView.BeginUpdate();
	PersonGridView.DataSource = persons;
	PersonGridView.EndUpdate();
	PersonGridView.Columns[nameof(Person.LastName)].SortOrder = RadSortOrder.Ascending;
}

There are two buttons: "Step one" and "Step two". The first will mimick a situation where the user search a database for persons and none will be found. By clicking the "Get selected rows" you will see that the SelectedRows will return zero rows which is correct.
But when you afterwards click "Step two" (which will add five rows) it seems like there's one row preselected. I would expect the SelectedRows to return that row but by clicking "Get selected rows" again you will see that the returned rows are zero still. The CurrentRow, however is set to the preselected row as expected.
If you start by clicking "Step two" the SelectedRows actually returns the correct rows. Quite strange :-)

I know this is a very small issue and can be avoided. But as I mentioned there are other situations where this problem occurs and it's quite hard to figure out exactly what causes it.

Thank you for your help.

Best regards
Ulrik Skovenborg

Unplanned
Last Updated: 19 Oct 2021 07:12 by ADMIN
Created by: Manolo
Comments: 0
Category: GridView
Type: Feature Request
0
The following problem occurs in most Telerik controls: when browsing the screen with tab key and the screen reader arrives at a Telerik control it says unnecessary information, the Name property, or the name of control. In this case, when I arrive at this radGridView, the screen reader says: "Telerik.WinControls.UI.RadGridView ; 4;3  Tabla"
Part by part:
- Telerik.WinControls.UI.RadGridView: it is very annoying to receive this information.
- 4;3: this information is very important due to the screen reader says the quantity of rows and columns has the grid.
- Tabla: this information is from the screen reader and the operating system which inform the control type I am browsing.

Testing other controls I have found more accessibility troubles, but I think that it would take too long for this email.
Unplanned
Last Updated: 07 Oct 2021 10:12 by ADMIN
Created by: Ben
Comments: 0
Category: GridView
Type: Bug Report
1

Please run the attached sample project. The row's height in the print document is not adjusted according to the column's width in the print page. 

Workaround: 

Usually for such cases it is convenient to increase the column's width in order to reduce its height and thus it would be able to fit the print page's height. In addition to adjusting the column's width, feel free to use multi-page printing:

https://docs.telerik.com/devtools/winforms/controls/gridview/printing-support/gridprintstyle#multi-page-printing   

 

Unplanned
Last Updated: 20 Apr 2021 15:19 by ADMIN
Good Afternoon,

I have a problem with radgridview :

grouping the column (GRP) of child template the summary row contains the correct data (12 RowCount for 62,40 summary), but if I try to sort a column and / or click on the summary row the datas is modified, the RowCount number becomes the total number of groups (4) and the amounts are reset (0,00).

Looking forward to your kind reply, I offer you my best regards.
Unplanned
Last Updated: 06 Apr 2021 12:41 by ADMIN

Dear Support team,

Our Application issue: While running application in assistive mode and having a grid with large number of columns, Narrator/JAWS starts reading each Column Value as "DbNull"
while User is Tabbing through selected Row. (Please see attach Video for better understanding.)

I also created a sample Program:

1. Build Win Form app having a RadGridView. [Sample Attached in 1514161]
2. Start Win 10 Narrator App

3. Run App from Step #1 [Note: Please do not Resize Main Form yet]
4. Start Tabbing from Grid selected Row. Narrator does not read/speak Cell Values.

5. Now Close & Run Application again and Maximize Window. Repeat Step #4. Narrator reads/speak Cell Values as expected.

 

It seems reads all values fine until they are visible, and once you continue tabbing and horizontal scrolling happens and then stops reading.

 

Please advice.  A Fix for it would be a great help!


Looking forward to hear back!

Thanks and Regards,

Vivek
Sr. .Net Developer

Unplanned
Last Updated: 26 Mar 2021 11:39 by ADMIN
I was creating a table with filters when I noticed that there is an option in the filters for 'EndsWith' but not one for 'DoesNotEndWith'. We use internal part numbers for our products where the last 3 digits determine the department in which the product was made. Because wildcards cannot be used within the RadGridView filters, I am having to create a unusual workaround. The same can be said about 'DoesNotBeginWith'.
Unplanned
Last Updated: 04 Dec 2020 09:33 by ADMIN
Created by: Chris
Comments: 0
Category: GridView
Type: Feature Request
0

The main purpose is optimizing memory consumption and performance when generating large pdf documents.

Resource: https://www.telerik.com/blogs/pdf-stream-processing-reliable-and-efficient-processing-of-pdf-files 

Unplanned
Last Updated: 17 Nov 2020 12:59 by ADMIN

I want that the user can select a value from al list like in excel:

Currently, when using the Excel-like filtering and RadListFilterPopup it does not allow filtering by time, only by date:

Unplanned
Last Updated: 19 Oct 2020 06:16 by ADMIN
To reproduce:
- Add ColumnGroupsViewDefinition and set ShowHeader to false. 
- Set AutoSizeRows to true.

Workaround:
Manually set the row height.
  ViewDefinition.ColumnGroups(0).Rows(0).MinHeight = 50

Unplanned
Last Updated: 09 Oct 2020 13:40 by ADMIN
Created by: Venugopal
Comments: 0
Category: GridView
Type: Feature Request
1

When you have a checkbox column in the grid and group by a certain column, you should have the possibility to check-all rows inside a group without the necessity of expanding the group and checking each separate row.

The group row should have a checkbox as well. When you toggle it, all data rows or nested groups should also be toggled. The parent group should also be adjusted correctly.

Workaround: The following knowledge base article demonstrates a sample approach how to extend the default group row and add a checkbox. However, it would be necessary to modify and extend it in a way to cover the cases with nested groups:

https://www.telerik.com/support/kb/winforms/details/check-all-functionality-in-group-rows 

Unplanned
Last Updated: 06 Aug 2020 09:38 by ADMIN

Please refer to the attached sample project. 

If the main Cars list is not empty, the child templates have correct captions:

However, if initially there are no Cars and you add a new one via the new row, the captions of the child template remains with the default value ("table"):