Unplanned
Last Updated: 17 Apr 2024 14:30 by ADMIN

I have a radGridView with MutliSelect set to true and SelectionMode set to FullRowSelect. A theme is applied, and this behavior is seen with other themes too. Several columns are pinned to the left.

When I multi-select rows using the shift or control buttons by clicking one of the cells under the frozen columns, the row is selected and colored accordingly, except for the cell that was actually clicked which remains with the unselected color.

If I multi-select by clicking on one of the cells under an unpinned column, the full row is selected as expected.

In the image below, I held down shift and selected the first and third row in sequence under the Officer column.

How can I fix this to show the complete row selected?

   
Unplanned
Last Updated: 22 Jun 2020 14:41 by ADMIN
Hi

Note : Issue in Current version of Telerik (2020.1.218.40)

On cheked of GridViewCheckBoxColumn (Multiple rows) in GridView grdFrReview_HeaderCellToggleStateChanged fires and header checkbox get checked. Header checkbox should check only if all check-boxes of current page checked, otherwise header checkbox should not checked. This was working fine in my previous version of Telerik (2018.3.1016.40).

In the screenshot shown i have checked 1st and then 2nd row of grid, you can see its headercheckbox status has been checked.
Unplanned
Last Updated: 17 Jun 2020 06:32 by ADMIN

Please refer to the attached sample project. When the expander is in the columns that contains long text that has be resize the rows, the AutoSizeRows functionality doesn't work properly:

Workaround: set the MasterTemplate.SelfReferenceExpanderColumn property to a column that contains very short content:  

Me.RadGridView1.MasterTemplate.SelfReferenceExpanderColumn = Me.RadGridView1.Columns(1)

Unplanned
Last Updated: 28 May 2020 10:06 by n/a
Now, I have 2 problems:

1. Checking / Unchecking header check box, checks/unchecks checkboxes of current page only.  I need to perform the operation for the whole grid.

2. I have got filters on.  User can select filters on columns.  Once filters are applied, records are displayed according to those filters (other records are hidden).  Now, when checking the header check box, it only selects records that are part of current page.  For example, if I am on first page and apply filter on one column, grid will hide all rows from the first page that do not match the filter and pull records from 2nd and 3rd pages that match the criteria and show on the first page.  But if I select check box in the header, then only records from first page are selected, records that came from 2nd and 3rd page are not selected.

 
Unplanned
Last Updated: 24 Feb 2020 06:47 by ADMIN
Created by: Yannis
Comments: 3
Category: GridView
Type: Bug Report
0

Hello,

I am using a radGridView on a Windows touch screen. When I am trying to scroll the rows by hand (EnableKineticScrolling was set to true), the scrolling process is very slow. If I will use the vertical scrollbar, then it is ok. How can I achieve this without using the vertical scrollbar?

I used EnableFastScrolling=true, but I did not see any improvement.

 

Regards,

Yannis

Unplanned
Last Updated: 25 Dec 2019 10:40 by ADMIN
Created by: erwin
Comments: 3
Category: GridView
Type: Bug Report
1

Hi,

when I select the column chooser multiple times via context menu, the column chooser dialog scales multiple times.

Reproduced here with the Telerik sample application. 150 % dpi scaling.

Regards

Erwin

Unplanned
Last Updated: 24 Dec 2019 08:39 by ADMIN

I'm just starting with RadGridView and trying to figure out how to create a combobox column inside my RadGridView.  I've added a column that is of type GridViewComboBoxColumn.  I've created a BindingSource that Contains the values for the combobox.  I can't figure out how to set the datasource property of the Column to use that BindingSource.  Google search says to set the datasource property but when I'm going through the "Open Properties Builder"  and I select my combobox column I don't see that property listed under advanced for the column.

Thanks

Lee

Unplanned
Last Updated: 21 Nov 2019 14:32 by ADMIN

If you want to use Conditional Formatting via code (expression based formatting) you will see that it throws an exception if you set TRIM() condition.

ExpressionFormattingObject expressionCondition = new ExpressionFormattingObject(
expressionCondition.Expression = "TRIM(ContactName) = 'Maria Anders'";
expressionCondition.CellBackColor = Color.Aqua;
this.radGridView1.Columns["CustomerID"].ConditionalFormattingObjectList.Add(expressionCondition);

There is no exception if you use the same condition via "Conditional Formatting Rules Manager" form.

Unplanned
Last Updated: 05 Nov 2019 08:17 by ADMIN

It seems that the GridViewColumnGroup.MinHeight has a big influence on the height of the filter cell.

Workaround:

this.radGridView1.AutoSizeRows = true;

Unplanned
Last Updated: 04 Oct 2019 10:04 by ADMIN

I am currently working in Telerik v2019.3.917 and .Net 4.5.2. I have multiple theme's setup for a local application for my users but I am seeing something odd with the Telerik.WinControls.Themes.HighContrastBlack theme. It appears that I am unable to select more than one cell in this theme. My grid has multiselect as true and SelectionMode as CellSelect. I have tried holding ctrl and clicking cells, clicking the row header, holding the mouse down and dragging, and using Ctrl+A but none of these select more than one cell.

I am setting the application theme on launch:

var _t = new Telerik.WinControls.Themes.HighContrastBlackTheme();
ThemeResolutionService.ApplicationThemeName = "HighContrastBlack";

 

Themes that work: All Fluents, All Material, All VS.

Is this a bug or am I missing something?

Unplanned
Last Updated: 12 Nov 2019 14:54 by ADMIN

Please refer to the attached gif file. You will notice that for the GridViewMaskBoxColumn  with numeric mask the filtering doesn't work. For the other columns each key stroke filters the grid rows.

Workaround: either use a GridViewDecimalColumn or change the default editor for the GridViewMaskBoxColumn :


            this.radGridView1.EditorRequired += radGridView1_EditorRequired; 

        private void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e)
        {
            if (this.radGridView1.CurrentColumn.HeaderText == "MaskBoxColumn")
            {
                GridSpinEditor spinEditor = new GridSpinEditor();
                RadSpinEditorElement element = spinEditor.EditorElement as RadSpinEditorElement;
                element.ShowUpDownButtons = false;
                e.Editor = spinEditor;
            }
        }

 

 

Unplanned
Last Updated: 19 Jun 2019 09:46 by ADMIN
Created by: Dimitri
Comments: 3
Category: GridView
Type: Bug Report
1

In my gridview need support of different heights of rows. I solved it with the autosize property.

But now I have a side action that the header row and filter row also react to the autosize property.

Attached you can see this behaviour...

Here my code:

Grid.MasterView.TableFilteringRow.MinHeight = 40
Grid.AutoSizeRows = True

Is there a chance to separate data rows from filter and header row?

 

Regards,

Dimitri

Unplanned
Last Updated: 14 May 2019 12:56 by ADMIN
============================
Attached files (in Grid.zip)
============================
- SQL Server 2014 Express - Create DB.sql                 - Create the database Telerik
- SQL Server 2014 Express - Create tables.sql             - Create tables and insert test data
- Database relations.PNG                                           - Graphical view from Visual Studio
- Error messages when trying to open Property Builder.PNG

============================  
How to reproduce the problem
============================
- Create the database and tables (including data) with attached sql files
- Create a WinForms application with an empty RadForm
- Add a new data source to the project and select the created Telerik DB with all tables
- Add a RadGridView to the form
- Create an event handler for the form Load event handler
- Add a TelerikDataSet to the form
- Add an ObjectTableAdapter to the form
- Fill the created adapter from table Object in the form Load event handler
- Add a binding source to the form and set data source to the data set and the member to table Object
- Select radGridView1 and set data source to the created binding source object. Data member is left empty.
- Open Property Builder and press the Build button and create details views
- Run project. Everything looks ok.
- Stop running.
- Select radGridView1 and try to open Property Builder. An error message is generated (see attached file Error messages...
- Save changes and exit studio. Studio is hanging and the process must be kiled.


Unplanned
Last Updated: 13 May 2019 11:54 by ADMIN
Created by: Roman
Comments: 5
Category: GridView
Type: Bug Report
2

Hello,

I am having issues with DateTime editor in the grid. We have custom date/time format for our dates - "HH:mm:ss dd-MMM-yyyy" and the datetime editor is set to free form date time with this mask. When user typed a value in the editor it is passed to FreeFormDateTimeProvider.Validate method, which calls DateInput.ParseDate. DateTimeLexer splits this kind of values just fine, but obviously time related tokens comes first and then the date related tokens.

Unfortunately DateTimeParser.Parse method is made the way that it parse date at first and then time from the tokens list. In my case this means time value is parsed and the date value is dropped to default. Why didn't you check that if after ParseDate and ParseTime calls the date portion is null but there are still remaining tokens in the list, so you may call ParseDate one more time?

Do you have any suggestion how could I resolve this issue? Everything related to date time parsing is not extendable at all, starting from DateInput, most of the classes and methods are not public and even some public methods are not virtual. Can I have the Telerik free form date time typing capabilities in the editor but still have time part before date part?

Unplanned
Last Updated: 19 Mar 2019 07:32 by ADMIN

To reproduce: 

- Add items with the same display member open the drop-down and select the second.

- Select another control on the form and then reopen the popup.

- The first item is selected.

Workaround: 

class MyMultiColumnComboBox : RadMultiColumnComboBox
{
    protected override void OnLostFocus(EventArgs e)
    {
        if (this.DropDownStyle == Telerik.WinControls.RadDropDownStyle.DropDownList)
        {
            return;
        }
        base.OnLostFocus(e);
    }
}

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: 16 May 2019 05:10 by ADMIN
How to reproduce:

1. Click DrugName Filter Icon.
2. Uncheck Combivent
3. OK
4. Click name Filter Icon
5. Uncheck Christoff
6. OK
7. Click DrugName Filter Icon
8. Uncheck Dilantin
9. OK

In this scenario the grid should display only 2 rows but it displays 3.

public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    public List<Drug> DrugList { get; set; }

    public RadForm1()
    {
        InitializeComponent();
        DrugList = new List<Drug>();
        LoadDrugList();
        radGridView1.DataSource = DrugList;
        radGridView1.EnableFiltering = true;

        this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        this.radGridView1.MultiSelect = true;
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        radGridView1.MasterTemplate.ShowFilteringRow = false;
        radGridView1.MasterTemplate.ShowHeaderCellButtons = true;
    }

    void LoadDrugList()
    {
        DrugList.Add(new Drug { Dosage = 25, DrugName = "Indocin", Name = "David"});
        DrugList.Add(new Drug { Dosage = 50, DrugName = "Enebrel", Name = "Sam" });
        DrugList.Add(new Drug { Dosage = 10, DrugName = "Hydralazine", Name = "Christoff"});
        DrugList.Add(new Drug { Dosage = 21, DrugName = "Combivent", Name = "Janet"});
        DrugList.Add(new Drug { Dosage = 100, DrugName = "Dilantin", Name = "Melanie"});
    }

}

Workaround: use a custom filter popup
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
    public List<Drug> DrugList { get; set; }

    public RadForm1()
    {
        InitializeComponent();
        DrugList = new List<Drug>();
        LoadDrugList();
        radGridView1.DataSource = DrugList;
        radGridView1.EnableFiltering = true;

        this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        this.radGridView1.MultiSelect = true;

        this.radGridView1.FilterPopupRequired += RadGridView1_FilterPopupRequired;
    }

    private void RadGridView1_FilterPopupRequired(object sender, FilterPopupRequiredEventArgs e)
    {
        e.FilterPopup = new CustomRadListFilterPopup(e.Column);
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        radGridView1.MasterTemplate.ShowFilteringRow = false;
        radGridView1.MasterTemplate.ShowHeaderCellButtons = true;
    }

    void LoadDrugList()
    {
        DrugList.Add(new Drug { Dosage = 25, DrugName = "Indocin", Name = "David"});
        DrugList.Add(new Drug { Dosage = 50, DrugName = "Enebrel", Name = "Sam" });
        DrugList.Add(new Drug { Dosage = 10, DrugName = "Hydralazine", Name = "Christoff"});
        DrugList.Add(new Drug { Dosage = 21, DrugName = "Combivent", Name = "Janet"});
        DrugList.Add(new Drug { Dosage = 100, DrugName = "Dilantin", Name = "Melanie"});
    }

}

public class CustomRadListFilterPopup : RadListFilterPopup
{
    public CustomRadListFilterPopup(GridViewDataColumn dataColumn) 
        : base(dataColumn)
    {
    }

    protected override void OnButtonOkClick(EventArgs e)
    {
        FilterMenuTreeItem treeMenuItem = this.Items.FirstOrDefault(i => i is FilterMenuTreeItem) as FilterMenuTreeItem;
        if (treeMenuItem == null)
        {
            base.OnButtonOkClick(e);
        }

        FilterMenuTreeElement listFilterElement = treeMenuItem.TreeElement;

        FilterOperator filterOperator = FilterOperator.IsEqualTo;

        switch (listFilterElement.SelectedMode)
        {
            case ListFilterSelectedMode.All:
                filterOperator = FilterOperator.None;
                break;
            case ListFilterSelectedMode.Null:
                filterOperator = FilterOperator.IsNull;
                break;
            case ListFilterSelectedMode.NotNull:
                filterOperator = FilterOperator.IsNotNull;
                break;
        }

        if (filterOperator != FilterOperator.IsEqualTo)
        {
            SetFilterOperator(filterOperator);
            this.ClosePopup(RadPopupCloseReason.CloseCalled);
        }
        else
        {
            CompositeFilterDescriptor compositeFilterDescriptor = new CompositeFilterDescriptor();
            compositeFilterDescriptor.PropertyName = this.DataColumn.Name;
            RadListFilterDistinctValuesTable distinctValues = this.GetDistinctValuesTable();
            string blanksKey = RadGridLocalizationProvider.CurrentProvider.GetLocalizedString(RadGridStringId.FilterMenuBlanks);
            bool blanks = listFilterElement.SelectedValues.Contains(blanksKey);
            compositeFilterDescriptor.LogicalOperator = FilterLogicalOperator.And;

            foreach (DictionaryEntry entry in distinctValues)
            {
                object key = entry.Key;

                if (string.IsNullOrEmpty(Convert.ToString(key)))
                {
                    key = blanksKey;
                }

                if (this.DataColumn is GridViewDateTimeColumn || this.DataColumn.DataType == typeof(DateTime) || this.DataColumn.DataType == typeof(DateTime?))
                {
                    DateTime dateTime;

                    if (DateTime.TryParse(key.ToString(), out dateTime))
                    {
                        object dataKey;
                        if (RadDataConverter.Instance.TryFormat(treeMenuItem.TreeElement.GroupedDateValues ? dateTime.Date : dateTime, typeof(string), this.DataColumn, out dataKey) == null)
                        {
                            key = dataKey;
                        }
                    }
                }

                if (!listFilterElement.SelectedValues.Contains(key))
                {
                    foreach (object value in (ArrayList)entry.Value)
                    {
                        FilterDescriptor descriptor;
                        if (value == DBNull.Value)
                        {
                            descriptor = new FilterDescriptor(this.DataColumn.Name, FilterOperator.IsNotEqualTo, null);
                        }
                        else if (this.DataColumn is GridViewDateTimeColumn || this.DataColumn.DataType == typeof(DateTime) || this.DataColumn.DataType == typeof(DateTime?))
                        {
                            descriptor = new DateFilterDescriptor(this.DataColumn.Name, FilterOperator.IsNotEqualTo, (DateTime?)value, false);
                        }
                        else
                        {
                            descriptor = new FilterDescriptor(this.DataColumn.Name, FilterOperator.IsNotEqualTo, value);
                        }

                        compositeFilterDescriptor.FilterDescriptors.Add(descriptor);
                    }
                }
            }

            if (this.DataColumn.FilterDescriptor != null)
            {
                CompositeFilterDescriptor compositeFilter = this.DataColumn.FilterDescriptor as CompositeFilterDescriptor;
                if (compositeFilter != null)
                {
                    foreach (var item in compositeFilter.FilterDescriptors)
                    {
                        if (listFilterElement.SelectedValues.Contains(item.Value))
                        {
                            continue;
                        }

                        FilterDescriptor descriptor = new FilterDescriptor(this.DataColumn.Name, FilterOperator.IsNotEqualTo, item.Value);
                        compositeFilterDescriptor.FilterDescriptors.Add(descriptor);
                    }
                }
                else if(!listFilterElement.SelectedValues.Contains(this.DataColumn.FilterDescriptor.Value))
                {
                    FilterDescriptor descriptor = new FilterDescriptor(this.DataColumn.Name, FilterOperator.IsNotEqualTo, this.DataColumn.FilterDescriptor.Value);
                    compositeFilterDescriptor.FilterDescriptors.Add(descriptor);
                }
            }
            this.FilterDescriptor = compositeFilterDescriptor;

            OnFilterConfirmed();
        }
    }
}
Unplanned
Last Updated: 16 May 2019 05:02 by ADMIN
Workaround:

        private void radGridView1_ConditionalFormattingFormShown(object sender, EventArgs e)
        {
            ConditionalFormattingForm f = sender as ConditionalFormattingForm;
            if (f != null)
            {
                f.Width += 5;
            }
        }
Unplanned
Last Updated: 15 Oct 2018 10:35 by ADMIN
A possible workaround is to use the following KB and change how it is implemented to iterate the MasterTemplate.Rows collection instead of the ViewInfo.Rows collection

https://www.telerik.com/support/kb/winforms/gridview/details/add-check-all-in-the-header-cell-for-a-gridviewcheckboxcolumn
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