Completed
Last Updated: 21 May 2014 14:47 by ADMIN
To reproduce:
- Add grid with enabled paging and filtering to a blank form.
- Select the second page and apply a filter.
Completed
Last Updated: 11 Dec 2015 14:55 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 4
Category: GridView
Type: Feature Request
1

			
Completed
Last Updated: 12 Jun 2014 19:35 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    
    radGridView1.Columns.Add("Id");
    radGridView1.Columns.Add("ParentID");
    radGridView1.Columns.Add("Name");

    radGridView1.Relations.AddSelfReference(radGridView1.MasterTemplate, "Id", "ParentID");

    for (int id = 1; id <= 3; id++)
    {
        radGridView1.MasterTemplate.Rows.Add(id, 0, "Node_" + id);
        for (int iChild = 1; iChild <= 5; iChild++)
        {
            int childId = id * 100 + iChild;
            radGridView1.MasterTemplate.Rows.Add(childId, id, "ChildNode_" + childId);
        }
    }
    foreach (GridViewHierarchyRowInfo row in this.radGridView1.Rows)
    {
       row.IsExpanded = true;
    }
}
Completed
Last Updated: 03 Aug 2014 21:45 by KennethMoss
To reproduce:
- Add the following column to a blank grid and new row or edit the existing one:
GridViewMaskBoxColumn maskBoxColumn = new GridViewMaskBoxColumn();
maskBoxColumn.Name = "Dates";
maskBoxColumn.HeaderText = "Dates";
maskBoxColumn.MaskType = MaskType.FreeFormDateTime;
maskBoxColumn.DataType = typeof(System.DateTime);
radGridView1.MasterTemplate.Columns.Add(maskBoxColumn);
this.radGridView1.Rows.Add(DateTime.Now.AddDays(5));


Completed
Last Updated: 19 Oct 2015 08:05 by ADMIN
To reproduce: 
1. Add a RadGridView and bind it to Northwind.Products table.
2. Use the following code:

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     Me.ProductsTableAdapter.Fill(Me.NwindDataSet.Products)
     For Each col As GridViewColumn In Me.RadGridView1.Columns
         If Not col.HeaderText = "SupplierID" AndAlso Not col.HeaderText = "ProductID" Then
             col.ReadOnly = True
         End If
     Next
     Me.RadGridView1.AddNewRowPosition = SystemRowPosition.Bottom
 End Sub

 Private Sub RadGridView1_CellValidating(sender As Object, e As CellValidatingEventArgs) Handles RadGridView1.CellValidating
     If e.Value Is Nothing Then
         If MessageBox.Show("Incorrect", "error", MessageBoxButtons.OKCancel) = Windows.Forms.DialogResult.OK Then
             e.Cancel = True
         End If
     End If
 End Sub

3. Run the project and go to the new row ,cell "SupplierID".
4. Clear the value and press Tab key. As a result the message box for error indication is shown twice.

Workaround:
'register the custom row  behavior
Dim gridBehavior As BaseGridBehavior = TryCast(RadGridView1.GridBehavior, BaseGridBehavior)
gridBehavior.UnregisterBehavior(GetType(GridViewNewRowInfo))
gridBehavior.RegisterBehavior(GetType(GridViewNewRowInfo), New MyNewRowBehavior())

Me.RadGridView1.GridViewElement.Navigator = New MyGridNavigator()


Public Class MyNewRowBehavior
Inherits GridNewRowBehavior
    Protected Overrides Function ProcessTabKey(keys As KeyEventArgs) As Boolean
        If Me.GridControl.AddNewRowPosition = SystemRowPosition.Bottom AndAlso _
        Me.GridControl.IsInEditMode AndAlso Me.GridViewElement.Navigator.IsLastColumn(GridViewElement.CurrentColumn) Then
            Me.GridControl.Tag = "SuspendValidation"
        End If
        Return MyBase.ProcessTabKey(keys)
    End Function
End Class

Public Class MyGridNavigator
Inherits BaseGridNavigator
    Public Overrides Function SelectFirstColumn() As Boolean
        If Me.GridViewElement.GridControl.Tag = "SuspendValidation" Then
            Me.GridViewElement.GridControl.Tag = Nothing
            Return False
        End If
        Return MyBase.SelectFirstColumn()
    End Function
End Class
Completed
Last Updated: 20 Oct 2014 14:15 by ADMIN
To reproduce:
- Set  EnterKeyMode to EnterMovesToNextRow.
- Enter an invalid value in the first cell and press enter two times.
- Enter valid value and press enter again.
- You will notice that the current row is moved appropriately.
Completed
Last Updated: 31 Aug 2015 10:11 by ADMIN
To reproduce:
- Add a grid to a blank form.
- Group the grid on a single column and expand a group row.
- Add and then remove a summary row by calling the clear method.
- You will notice that the summary row is not removed.


Workaround: reset the groups after the summary rows are cleared:
radGridView1.SummaryRowsBottom.Clear();
 
List<GroupDescriptor> list = new List<GroupDescriptor>();
 
foreach (var item in radGridView1.GroupDescriptors)
{
    list.Add(item);
}
 
radGridView1.GroupDescriptors.Clear();
radGridView1.MasterTemplate.Refresh();
 
foreach (var item in list)
{
    radGridView1.GroupDescriptors.Add(item);
}
 
 radGridView1.MasterTemplate.Refresh();
Completed
Last Updated: 16 Oct 2014 14:58 by ADMIN
To reproduce: add a RadGridView and bind it to Employees data table. Use the following code snippet:

Me.RadGridView1.EnableGrouping = True
Me.RadGridView1.EnableFiltering = True

Dim summaryItem As New GridViewSummaryItem()
summaryItem.Name = "Address"
summaryItem.Aggregate = GridAggregateFunction.Count

Dim summaryRowItem As New GridViewSummaryRowItem()
summaryRowItem.Add(summaryItem)

Me.RadGridView1.SummaryRowsTop.Add(summaryRowItem)
Me.RadGridView1.MasterTemplate.ShowParentGroupSummaries = True

1. Group by "Title" and expand "Sales Representative" group.
2. Group by "Country" and "City".
3.Expand "Sales Representative" group >> "UK" sub-group >> "London" sub-group. You will notice that the summary row shows "3", because you actually have 3 employees in "London" group.
4.Filter by "FirstName" (Contains: "a" for example). As a result 2 employess will remain in  "London" group, but the summary row will continue displaying "3".

The attached gif file illustrates better the described behavior.

Workaround: in the FilterChanged event store the applied GroupDescriptors, clear the RadGridView.GroupDescriptors collection, and add again the stored descriptors. Note that it is necessary to store the expanded groups and restore their state as well.
Completed
Last Updated: 09 Oct 2014 15:50 by ADMIN
RadDateTimeEditor the entire date cannot be selected when the editor is initialized.
Completed
Last Updated: 11 Dec 2015 14:05 by ADMIN
To reproduce:
- Bind the grid to a binding list of custom property which has a bool value.
- Add a filter that shows only false values.
- Change some (more than one) of the underlying values to true.
- You will notice that the rows with the new value are still visible.
Completed
Last Updated: 11 Nov 2014 11:25 by Chris Ward
To reproduce:

Set these properties:

radGridView1.SelectionMode = GridViewSelectionMode.FullRowSelect;
radGridView1.MultiSelect = true;

Select a row, hold Ctrl and click the same cell which is selected, you will see that the SelectionChanging event, along with the SelectionChanged one will not be fired.

Workaround:

Use the PropertyChanging event of the rows:

this.Grid.Rows.ToList().ForEach(x => x.PropertyChanging += x_PropertyChanging);

....

void x_PropertyChanging(object sender, Telerik.WinControls.Interfaces.PropertyChangingEventArgsEx e)
{
    if (e.PropertyName == "IsSelected")
    {
    }
}
Completed
Last Updated: 20 Oct 2014 14:37 by ADMIN
To reproduce:
- Bind the grid to an ObservableCollection and set its AddNewBoundRowBeforeEdit property to true.
- Click in the new row and then click back in already added row.
Completed
Last Updated: 11 Nov 2014 09:40 by Takuma
To reproduce:
- Type &1 in a grid cell and then press enter to exit edit mode.
- Press tab for example to move to the next cell.
- Press 1 again you will notice that the digit does not appear in the cell.
Completed
Last Updated: 11 May 2016 14:12 by ADMIN
Currently the Paging functionality does not support server side operations. It should be extended to support them, e.g. with EntityFramework and Telerik Data Access
Declined
Last Updated: 15 Oct 2015 11:04 by ADMIN
To reproduce: 
1. Add GridView which inherits the RadGridView
2. Populate the grid with some data
3. Add conditional formatting and set RowBackColor and CellBackColor 
4. Subscribe to RowFormatting event and change the font of selected row: 
void radGridView2_RowFormatting(object sender, RowFormattingEventArgs e)
{
    if (e.RowElement.IsSelected)
    {
        e.RowElement.Font = new Font(this.Font.FontFamily, this.Font.Size + 2, FontStyle.Bold);
    }
    else
    {
        e.RowElement.ResetValue(LightVisualElement.FontProperty, ValueResetFlags.Local);
        //e.RowElement.Font = this.Font;
    }
}

5. Select row with conditional formatting. The font of selected row is bold which is correct. Select another row and you will see that the previous row is still bold.

Workaround: 
Subscribe to CellFormatting event instead RowFormatting
void radGridView2_CellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.Row.IsSelected)
    {
        e.CellElement.Font = new Font(this.Font.FontFamily, this.Font.Size + 2, FontStyle.Bold);
    }
    else
    {
        e.CellElement.ResetValue(LightVisualElement.FontProperty, ValueResetFlags.Local);
    }
}
Completed
Last Updated: 04 Dec 2014 14:37 by kultman
To reproduce: use the following code snippet:

DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("IsActive", typeof(bool));

for (int i = 0; i < 20; i++)
{
    if (i % 5 == 0)
    {
        dt.Rows.Add(i, "Item" + i, true);
    }
    {
        dt.Rows.Add(i, "Item" + i, DBNull.Value);
    }
}

this.radGridView1.DataSource = dt;
this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
this.radGridView1.EnableFiltering = true;


Try to filter by "Name" column via entering "4". As a result an InvalidCastException occurs.

Workaround: initialize default value for the cells belonging to GridViewCheckBoxColumn with false if  it is DBNull:

foreach (GridViewRowInfo r in this.radGridView1.Rows)
            {
                if (r.Cells["IsActive"].Value == DBNull.Value)
                {
                    r.Cells["IsActive"].Value = false;
                }
            }
Completed
Last Updated: 28 Mar 2024 12:09 by ADMIN
When Excel-like filtering is enabled and the user selects an item from the "Available Filters" drop down menu, a CompositeFilterForm is shown.
Unplanned
Last Updated: 30 Mar 2016 07:58 by ADMIN
When the current cell belongs to one of the data rows and you click with the left mouse button over a GridFilterCellElement , the editor is activated. However, if you navigate with the arrow keys, the editor is not activated and the user can not see any indication about the current cell.

Workaround:

private void radGridView1_ViewCellFormatting(object sender,
    Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    GridFilterCellElement filterCell = e.CellElement as GridFilterCellElement;
    if (filterCell != null)
    {
        if (filterCell.IsCurrent)
        {
            filterCell.BorderWidth = 3;
        }
        else
        {
            filterCell.BorderWidth = 1;
        }
    }
}
Completed
Last Updated: 28 Nov 2014 08:04 by ADMIN
To reproduce: use the following code snippet:


Steps to repeat:
1. A Self-Referencing Hierarchical Grid is displayed, grouped by the "Title" column.
3. Expand the first group.
4. Check the first row  check box. As a result the editor is activated and its value is changed.  
5. Click on the "+" sign in 1st row of data to expand and see child rows or just close the editor. You will notice that the group is unexpectedly collapsed.

Workaround:

private void radGridView1_ValueChanged(object sender, EventArgs e)
{
    if (this.radGridView1.ActiveEditor is RadCheckBoxEditor)
    {
        if (this.radGridView1.CurrentRow.Group != null && this.radGridView1.CurrentRow.Group.IsExpanded)
        {
            this.radGridView1.EndEdit();
            this.radGridView1.CurrentRow.Group.Expand();
        }
    }
}
Completed
Last Updated: 18 Nov 2014 06:47 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));
    dt.Columns.Add("ParentId", typeof(int));
    dt.Columns.Add("IsActive", typeof(bool));
    dt.Columns.Add("Title", typeof(string));

    for (int i = 1; i < 6; i++)
    {
        dt.Rows.Add(i, 0, i % 2 == 0, "Title" + i);
    }
    Random rand = new Random();
    int parentIndex = 0;
    for (int i = 6; i < 30; i++)
    {
        parentIndex = rand.Next(1, 6);
        dt.Rows.Add(i, parentIndex, i % 2 == 0, "Title" + i);
    }

    radGridView1.DataSource = dt;
    radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
    radGridView1.Relations.AddSelfReference(radGridView1.MasterTemplate, "Id", "ParentId");

    GroupDescriptor descriptor = new GroupDescriptor();
    descriptor.GroupNames.Add("Title", System.ComponentModel.ListSortDirection.Ascending);
    radGridView1.GroupDescriptors.Add(descriptor);

    this.radGridView1.AllowSearchRow = true;
}