Declined
Last Updated: 06 Oct 2015 10:56 by ADMIN
Completed
Last Updated: 28 Sep 2015 12:30 by ADMIN
ADMIN
Created by: Julian Benkov
Comments: 0
Category: GridView
Type: Bug Report
2
“Missing data after apply Object-Relational filtering operation” as in the attached, also capture case simulation in video file to illustrate how the case happen to support your investigation. Scenario case: ·         Expand Parent Data 2 à will see child data level (child data 2.1.1, child data 2.1.2, child data 2.1.3) ·         Filter child data that contains value = input “2.1.4” (mismatch case filter)·         Current Result : Not show all 3 child data and cannot get it back to display again   In this case, normally how the component handle this “not found filtering result” case, is it normal to display result like this? If so please help recommend how we can get 3 child data back for doing any further process.
Declined
Last Updated: 23 Sep 2015 08:43 by ADMIN
To reproduce: 

1. Add a grid to a form. 

2. Set its SplitMode to vertical or horizontal. 

3. Set its SynchronizeCurrentRowInSplitMode to false. 

You will notice that both grids are synchronized. 

Workaround: Add two RadgridViews in a RadSplitContainer with two split panels and use two separate data sources. 

For example: 

List<string> ds = new List<string>();

grid1.DataSource = ds; 

grid2.DataSource = ds.ToArray();
Completed
Last Updated: 18 Sep 2015 14:51 by ADMIN
To reproduce:
- Add two child templates to a grid.
- Add summary rows to both of them 
- Change the value of the child template.

Workaround:
- Clear and add back the summary rows when a value in the child template is changed. 
Completed
Last Updated: 18 Sep 2015 13:51 by ADMIN
Workaround, use the Pasting event of RadGridView and perform the needed validation
Completed
Last Updated: 18 Sep 2015 13:24 by ADMIN
To reproduce:
radGridView1.DataSource = GetTable();
radGridView1.MultiSelect = true;
radGridView1.SelectionMode = Telerik.WinControls.UI.GridViewSelectionMode.CellSelect;

Then just select and deselect several cells without releasing the mouse button.

Workaround:
void radGridView1_MouseUp(object sender, MouseEventArgs e)
{
    int endIndexCol = -1;
    int endIndexRow = -1;
     GridDataCellElement curentCell = radGridView1.ElementTree.GetElementAtPoint(e.Location) as GridDataCellElement;
     if (curentCell != null)
     {
         endIndexCol = curentCell.ColumnInfo.Index;
         endIndexRow = curentCell.RowInfo.Index;
     }
    if (endIndexCol < startIndexCol)
    {
        int temp = endIndexCol;
        endIndexCol = startIndexCol;
        startIndexCol = temp;
    }
    if (endIndexRow < startIndexRow)
    {
        int temp = endIndexRow;
        endIndexRow = startIndexRow;
        startIndexRow = temp;
    }
    
    foreach (GridViewCellInfo cell in radGridView1.SelectedCells.ToList())
    {
        if (cell.RowInfo.Index < startIndexRow || cell.RowInfo.Index > endIndexRow)
        {
            cell.IsSelected = false;
        }
        if (cell.ColumnInfo.Index < startIndexCol || cell.ColumnInfo.Index > endIndexCol)
        {
            cell.IsSelected = false;
        }
    }
}

int startIndexCol = -1 ;
int startIndexRow = -1;

void radGridView1_MouseDown(object sender, MouseEventArgs e)
{
    GridDataCellElement curentCell = radGridView1.ElementTree.GetElementAtPoint(e.Location) as GridDataCellElement;
    if (curentCell != null)
    {
        startIndexCol = curentCell.ColumnInfo.Index;
        startIndexRow = curentCell.RowInfo.Index;
    }

}

Completed
Last Updated: 17 Sep 2015 14:37 by ADMIN
The issue is reproduced when the columns for GridViewTemplate are added last in the end after the all hierarchy settings: relations, templates
Completed
Last Updated: 17 Sep 2015 14:16 by ADMIN
Workaround:  set the Position of the current item of the BindingSource in the CurrentRowChanged event of RadGridView:
void rgvInvoices_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e)
{
    int index = bsInvoices.IndexOf(e.CurrentRow.DataBoundItem) ;
    bsInvoices.Position = index;
}
Completed
Last Updated: 17 Sep 2015 13:44 by ADMIN
Description: CustomFiltering event does not fire for a RadGridView with Self-Referencing Hierarchy

To reproduce:
- add RadGridView  to a form
- EnableCustomFiltering=true and EnableFiltering=true
- AddSelfReference

Workaround:
- First AddSelfReference and bind the grid
- Second EnableCustomFiltering=true and EnableFiltering=true
Completed
Last Updated: 17 Sep 2015 11:01 by ADMIN
Workaround: handle the KeyDown event of the inner TextBoxControl and manipulate the TextBox.SelectionStart:

private void radPropertyGrid1_EditorInitialized(object sender, Telerik.WinControls.UI.PropertyGridItemEditorInitializedEventArgs e)
{
    PropertyGridDropDownListEditor ddlEditor = e.Editor as PropertyGridDropDownListEditor;
    if (ddlEditor != null)
    {
        ddlEditor.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
        BaseDropDownListEditorElement el = ddlEditor.EditorElement as BaseDropDownListEditorElement;
        el.EditableElement.TextBox.TextBoxItem.TextBoxControl.KeyDown -= el_KeyDown;
        el.EditableElement.TextBox.TextBoxItem.TextBoxControl.KeyDown += el_KeyDown;
    }
}

private void el_KeyDown(object sender, KeyEventArgs e)
{
    TextBox tb = sender as TextBox;
    if (e.KeyData == Keys.Left && tb.SelectionStart > 0)
    {
        tb.SelectionStart = --tb.SelectionStart;
    }
    if (e.KeyData == Keys.Right && tb.SelectionStart <= tb.Text.Length)
    {
        tb.SelectionStart = ++tb.SelectionStart;
    }
}
Completed
Last Updated: 16 Sep 2015 10:11 by ADMIN
1. Create new project with RadGridView and setup hierarchy with multiple tabs.
2. Run the project.
3. Open a child view tab and start editing a filter cell.
4. While the editor is open, change the active tab.
5. Repeat this operation several times.

Workaround: the issue appears because RadGridView does not close its editor when changing the tab page and it thinks that it is still in edit mode when selecting the old page. You can work around the issue by using a custom cell element. Consider the code below:

public class CustomDetailsCellElement : GridDetailViewCellElement
{
    public CustomDetailsCellElement(GridViewColumn column, GridRowElement row)
        : base(column, row)
    {
    }
 
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(GridDetailViewCellElement);
        }
    }
 
    protected override RadPageViewElement CreatePageViewElement(IRadPageViewProvider pageViewProvider)
    {
        RadPageViewElement pageView =  base.CreatePageViewElement(pageViewProvider);
        pageView.ItemSelecting += new EventHandler<RadPageViewItemSelectingEventArgs>(PageViewElement_ItemSelecting);
        return pageView;
    }
 
    void PageViewElement_ItemSelecting(object sender, RadPageViewItemSelectingEventArgs e)
    {
        if (this.IsInValidState(true) && this.GridControl != null && this.GridControl.IsInEditMode)
        {
            this.GridControl.EndEdit();
        }
    }
 
}

You should handle also the CreateCell event in order to replace default child view cell in RadGridView:
 
void gvReviewMigration_CreateCell(object sender, GridViewCreateCellEventArgs e)
{
    if (e.CellType == typeof(GridDetailViewCellElement))
    {
        e.CellType = typeof(CustomDetailsCellElement);
    }
}
Completed
Last Updated: 16 Sep 2015 08:42 by ADMIN
When selecting the child templates from the tree view in the left pane, the preview should be updated to show the child template.
Completed
Last Updated: 16 Sep 2015 07:31 by ADMIN
http://screencast.com/t/mZDwbWS8

WORKAROUND:
Set the UseCompatibleTextRendering property of RadGridView to false.
Declined
Last Updated: 15 Sep 2015 13:42 by ADMIN
If RadGridView is bound to custom objects that implement IComparable<T>, Excel-like filtering does not work. Currently, the issue can be avoided through implementing IComparable instead.
Declined
Last Updated: 15 Sep 2015 13:40 by ADMIN
To reproduce: use the following code snippet:
Sub New()
    InitializeComponent()

    Me.RadGridView1.EnableFiltering = True
    Me.RadGridView1.ShowHeaderCellButtons = True

    Dim dt As New DataTable
    dt.Columns.Add("Id", GetType(Integer))
    dt.Columns.Add("Name", GetType(String))
    dt.Columns.Add("Type", GetType(String))
    dt.Columns.Add("Active", GetType(Boolean))

    Dim typeList As New List(Of String)
    typeList.Add("REFERRAL")
    typeList.Add("EMPLOYEE")
    typeList.Add("Type3")
    typeList.Add("Type4")

    Dim rand As New Random
    For index = 1 To 10
        dt.Rows.Add(index, "Name" & index, typeList(rand.Next(0, typeList.Count)),If(index mod 2=0, True,false))
    Next

    Me.RadGridView1.AutoGenerateColumns = False
    Dim decimalColumn As New GridViewDecimalColumn("ID")
    decimalColumn.FieldName = "Id"
    RadGridView1.MasterTemplate.Columns.Add(decimalColumn)

    Dim textBoxColumn As New GridViewTextBoxColumn("Name")
    textBoxColumn.FieldName = "Name"
    RadGridView1.MasterTemplate.Columns.Add(textBoxColumn)

    Dim supplierColumn As GridViewComboBoxColumn = New GridViewComboBoxColumn("Type")
    supplierColumn.FieldName = "Type"
    supplierColumn.DataSource = typeList
    Me.RadGridView1.Columns.Add(supplierColumn)

    Dim checkBoxColumn As New GridViewCheckBoxColumn("Active")
    checkBoxColumn.FieldName = "Active"
    RadGridView1.MasterTemplate.Columns.Add(checkBoxColumn)

    Me.RadGridView1.DataSource = dt
    Me.RadGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill

End Sub

Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click

    Dim activeFilter As New FilterDescriptor()
    activeFilter.PropertyName = "Active"
    activeFilter.Operator = FilterOperator.IsEqualTo
    activeFilter.Value = True

    Dim typeFilter As New CompositeFilterDescriptor()
    typeFilter.FilterDescriptors.Add(New FilterDescriptor("Type", FilterOperator.IsEqualTo, "EMPLOYEE"))
    typeFilter.FilterDescriptors.Add(New FilterDescriptor("Type", FilterOperator.IsEqualTo, "REFERRAL"))
    typeFilter.LogicalOperator = FilterLogicalOperator.Or

    Dim overallFilterDescriptor As New CompositeFilterDescriptor()
    'overallFilterDescriptor.PropertyName = "Type"
    'overallFilterDescriptor.IsFilterEditor = True

    overallFilterDescriptor.FilterDescriptors.Add(typeFilter)
    overallFilterDescriptor.FilterDescriptors.Add(activeFilter)
    overallFilterDescriptor.LogicalOperator = FilterLogicalOperator.And

    Me.RadGridView1.FilterDescriptors.Add(overallFilterDescriptor)
End Sub


Run the project and click the button. You will see that the filter button is not orange indicating that there is applied filter. Additionally, the "Clear filter" option is disabled and the user is not allowed to see the entire data any more.

Workaround: set the overall CompositeFilterDescriptor.PropertyName to a specific column and the IsFilterEditor property to true. Thus, you will be allowed to clear the filter from this column.
Completed
Last Updated: 15 Sep 2015 13:37 by ADMIN
To reproduce: use the following code snippet and perform the steps illustrated on the attached gif file.

radGridView1.Columns.Add(new GridViewTextBoxColumn("A", "A"));
radGridView1.Columns.Add(new GridViewTextBoxColumn("B", "B"));
radGridView1.Columns.Add(new GridViewTextBoxColumn("C", "C"));
radGridView1.Columns.Add(new GridViewTextBoxColumn("D", "D"));
radGridView1.Columns.Add(new GridViewTextBoxColumn("E", "E"));
radGridView1.Columns.Add(new GridViewTextBoxColumn("F", "F"));


radGridView1.Columns[0].Width = 150;
radGridView1.Columns[1].Width = 150;
radGridView1.Columns[2].Width = 150;
radGridView1.Columns[3].Width = 150;
radGridView1.Columns[4].Width = 150;
radGridView1.Columns[5].Width = 150;

radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");
radGridView1.Rows.Add("A", "B", "C", "D", "E", "F");

Workaround: 

private void radGridView1_Resize(object sender, EventArgs e)
{
    if (this.radGridView1.IsInEditMode)
    {
        this.radGridView1.EndEdit();
        this.radGridView1.BeginEdit();              
    }
}

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

    protected override RadGridViewElement CreateGridViewElement()
    {
        return new CustomRadGridViewElement();
    }
}

public class CustomRadGridViewElement : RadGridViewElement
{
    protected override Type ThemeEffectiveType     
    { 
        get    
        { 
            return typeof(RadGridViewElement);     
        }
    }

    protected override GridViewEditManager CreateEditorManager()
    {
        return new CustomGridViewEditManager(this);
    }
}

public class CustomGridViewEditManager : GridViewEditManager
{
    public CustomGridViewEditManager(RadGridViewElement gridViewElement) : base(gridViewElement)
    {
    }

    protected override void InitializeEditor(IInputEditor activeEditor)
    {
        if (activeEditor == null)
        {
            activeEditor = this.GridViewElement.CurrentColumn.GetDefaultEditor();
            this.ActiveEditor = activeEditor;
        }
        base.InitializeEditor(activeEditor);
    }
}
Declined
Last Updated: 15 Sep 2015 13:21 by ADMIN
Deleting a Template in the Property Builder does work.
Completed
Last Updated: 15 Sep 2015 12:36 by ADMIN
Workaround: set up the templates from code, http://www.telerik.com/help/winforms/gridview-overview.html
Completed
Last Updated: 15 Sep 2015 07:44 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    GridViewCheckBoxColumn checkBoxColumn = new GridViewCheckBoxColumn("Select");
    checkBoxColumn.EnableHeaderCheckBox = true;
    radGridView1.MasterTemplate.Columns.Insert(0, checkBoxColumn);

    for (int i = 0; i < 10; i++)
    {
        this.radGridView1.Rows.Add(false);
    }
    this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

    this.radGridView1.MultiSelect = true;
    this.radGridView1.HeaderCellToggleStateChanged += radGridView1_HeaderCellToggleStateChanged;
}

private void radGridView1_HeaderCellToggleStateChanged(object sender, GridViewHeaderCellEventArgs e)
{
    if (e.State.ToString() == "On")
        this.radGridView1.SelectAll();
    else
        this.radGridView1.ClearSelection();
}


Workaround 1:
private void radGridView1_HeaderCellToggleStateChanged(object sender, GridViewHeaderCellEventArgs e)
{
    bool selected = e.State.ToString() == "On";

    foreach (GridViewRowInfo r in this.radGridView1.Rows)
    {
        r.IsSelected = selected;
    }
}

Workaround 2:

private void radGridView1_MouseUp(object sender, MouseEventArgs e)
{
    RadCheckBoxElement el = this.radGridView1.ElementTree.GetElementAtPoint(e.Location) as RadCheckBoxElement;
    if (el!=null)
    {
        GridCheckBoxHeaderCellElement headerCell = el.Parent as GridCheckBoxHeaderCellElement;
        bool selected = el.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On;
        if (headerCell!=null)
        {
            if (selected)
            {
                this.radGridView1.SelectAll();
            }
            else
            {
                this.radGridView1.ClearSelection();
            }
        }
    }
}