Completed
Last Updated: 20 Feb 2015 13:50 by ADMIN
To reproduce use the following snippets in the CellFormatting event of the exporter:
 ThemableColor red = new ThemableColor(System.Windows.Media.Colors.Red);
 CellBorders redBorders = new CellBorders(new CellBorder(CellBorderStyle.Medium, red));            

 e.CellStyleInfo.Borders = redBorders;

or 

ThemableColor red = new ThemableColor(System.Windows.Media.Colors.Red);
CellBorders fourBorders = new CellBorders();

fourBorders.Top = new CellBorder(CellBorderStyle.Thin, red);
fourBorders.Bottom = new CellBorder(CellBorderStyle.Thin, red);
fourBorders.Right = new CellBorder(CellBorderStyle.Thin, red);
fourBorders.Left = new CellBorder(CellBorderStyle.Thin, red);

e.CellStyleInfo.Borders = fourBorders;
Completed
Last Updated: 28 Nov 2014 08:45 by ADMIN
To reproduce:

Download the attached project, run it and try to filter the bottom grid. You will see the exception

Workaround:

Use the following custom RadGridView:

public class MyGrid : RadGridView
{
    protected override RadGridViewElement CreateGridViewElement()
    {
        return new MyGridElement();
    }
}

public class MyGridElement : RadGridViewElement
{
    protected override MasterGridViewTemplate CreateTemplate()
    {
        return new MyMasterTemplate();
    }

    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadGridViewElement);
        }
    }
}

public class MyMasterTemplate : MasterGridViewTemplate
{
    private MyEventDispatcher dispatcher = new MyEventDispatcher();

    public override EventDispatcher EventDispatcher
    {
        get
        {
            return this.dispatcher;
        }
    }
}

public class MyEventDispatcher : EventDispatcher
{
    public override void RaiseEvent<T>(object eventKey, object sender, T args)
    {
        GridViewCellEventArgs cellArgs = args as GridViewCellEventArgs;
        if (cellArgs != null && cellArgs.Column == null && cellArgs.Row == null)
        {
            typeof(GridViewCellEventArgsBase)
                .GetField("column", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
                .SetValue(cellArgs, new GridViewTextBoxColumn());

            typeof(GridViewCellEventArgsBase)
                .GetField("row", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
                .SetValue(cellArgs, new GridViewDataRowInfo(null));
        }

        base.RaiseEvent<T>(eventKey, sender, args);
    }
}
Completed
Last Updated: 28 Nov 2014 06:27 by ADMIN
Workaround:

RadDragDropService dragDropService;
int scrollValue = 0;

public Form1()
{
    InitializeComponent();

    dragDropService = this.leftGrid.GridViewElement.GetService<RadDragDropService>();
    dragDropService.Started += dragDropService_Started;
    leftGrid.TableElement.VScrollBar.ValueChanged += VScrollBar_ValueChanged;
}

private void dragDropService_Started(object sender, EventArgs e)
{
    scrollValue = this.leftGrid.TableElement.VScrollBar.Value;
}

private void VScrollBar_ValueChanged(object sender, EventArgs e)
{
    if (dragDropService != null && dragDropService.State == RadServiceState.Working)
    {
        this.leftGrid.TableElement.VScrollBar.Value = scrollValue; 
    }
}

Resolution: 
Added AllowAutoScrollColumnsWhileDragging and AllowAutoScrollRowsWhileDragging properties of RadGridViewDragDropService: 

RadGridViewDragDropService svc = this.GridViewElement.GetService<RadGridViewDragDropService>();
svc.AllowAutoScrollColumnsWhileDragging = false;
svc.AllowAutoScrollRowsWhileDragging = false;
svc.Start(row);

Completed
Last Updated: 18 Nov 2014 11:26 by ADMIN
To reproduce:

Populate a RadGridView with the following data:

DataTable vMain = new DataTable("Details");
vMain.Columns.Add("OutServiceDateGuid", typeof(Guid));
vMain.Columns.Add("預估金額", typeof(string));
vMain.Columns.Add("織造", typeof(bool));
vMain.Columns.Add("狀態", typeof(string));
vMain.Columns.Add("委託廠商", typeof(string));       
vMain.Columns.Add("工服單", typeof(string));
vMain.Columns.Add("申請日", typeof(DateTime));
for (int i = 0; i < 40; i++)
{
    vMain.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + i.ToString("0#") ,i.ToString(), true,"", "中心", "103LMH4"+i.ToString(), "2014-10-24 13:04:16.367"); 
}

radGridView1.DataSource = vMain;
radGridView1.Columns["OutServiceDateGuid"].IsVisible = false;    
radGridView1.Columns["申請日"].FormatString = "{0:yyyy/MM/dd}";
radGridView1.Columns["預估金額"].FormatString = "{0:C}";
radGridView1.Columns["狀態"].MaxWidth = 70;
//  this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
//this.radGridView1.BestFitColumns(BestFitColumnMode.AllCells);
//  this.radGridView1.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
DataTable vWoven = new DataTable("vWoven");
vWoven.Columns.Add("OutServiceDateGuid", typeof(Guid));
vWoven.Columns.Add("NameOrColor", typeof(string));
vWoven.Columns.Add("Qty", typeof(string));
vWoven.Columns.Add("QtyUnitName", typeof(string));
vWoven.Columns.Add("Weight", typeof(string));
vWoven.Columns.Add("SumPrice", typeof(string));
for (int i = 0; i < 40; i++)
{
    vWoven.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + (i + 1).ToString("0#"), " vWoven中心" + i.ToString(), i, i, i);
}

GridViewTemplate template1 = new GridViewTemplate();
template1.Caption = "織造";
template1.DataSource = vWoven;
template1.Columns["OutServiceDateGuid"].IsVisible = false;
template1.Columns["NameOrColor"].HeaderText = "成品名與規格";
template1.Columns["Qty"].HeaderText = "數量";
template1.Columns["QtyUnitName"].HeaderText = "單位";
template1.Columns["Weight"].HeaderText = "重量";
template1.Columns["SumPrice"].HeaderText = "金額";
//template1.BestFitColumns(BestFitColumnMode.AllCells);
template1.AllowRowResize = false;
template1.ShowColumnHeaders = true;
template1.ShowRowHeaderColumn = true;
template1.AllowAddNewRow = false;
template1.AllowDeleteRow = false;
template1.AllowDragToGroup = false;
this.radGridView1.Templates.Add(template1);

GridViewRelation relation1 = new GridViewRelation(this.radGridView1.MasterTemplate);
relation1.ChildTemplate = template1;
relation1.ParentColumnNames.Add("OutServiceDateGuid");
relation1.ChildColumnNames.Add("OutServiceDateGuid");
this.radGridView1.Relations.Add(relation1);

DataTable vDye = new DataTable("vDye");
vDye.Columns.Add("OutServiceDateGuid", typeof(Guid));
vDye.Columns.Add("NameOrColor", typeof(string));
vDye.Columns.Add("ColorNo", typeof(string));       
vDye.Columns.Add("Qty", typeof(string));
vDye.Columns.Add("QtyUnitName", typeof(string));
vDye.Columns.Add("Weight", typeof(string));
vDye.Columns.Add("SumPrice", typeof(string));
for (int i = 0; i < 20; i++)
{
    vDye.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + (i + 1).ToString("0#"), " vDye中心" + i.ToString(),"", i, i, i);
}

GridViewTemplate template2 = new GridViewTemplate();
template2.Caption = "染整";
template2.DataSource = vDye;
template2.Columns["OutServiceDateGuid"].IsVisible = false;

template2.Columns["NameOrColor"].HeaderText = "顏色";
template2.Columns["ColorNo"].HeaderText = "色號";
template2.Columns["Qty"].HeaderText = "數量";
template2.Columns["QtyUnitName"].HeaderText = "單位";
template2.Columns["Weight"].HeaderText = "重量";
template2.Columns["SumPrice"].HeaderText = "金額";
//template2.BestFitColumns(BestFitColumnMode.AllCells);
template2.AllowAddNewRow = false;
template2.AllowRowResize = false;
template2.ShowColumnHeaders = true;
template2.ShowRowHeaderColumn = true;
template2.AllowDeleteRow = false;
template2.AllowDragToGroup = false;
this.radGridView1.Templates.Add(template2);

GridViewRelation relation2 = new GridViewRelation(this.radGridView1.MasterTemplate);
relation2.ChildTemplate = template2;
relation2.ParentColumnNames.Add("OutServiceDateGuid");
relation2.ChildColumnNames.Add("OutServiceDateGuid");
this.radGridView1.Relations.Add(relation2);

DataTable vAppoint = new DataTable("vAppoint");
vAppoint.Columns.Add("OutServiceDateGuid", typeof(Guid));
vAppoint.Columns.Add("NameOrColor", typeof(string));
vAppoint.Columns.Add("Qty", typeof(string));
vAppoint.Columns.Add("QtyUnitName", typeof(string));
vAppoint.Columns.Add("Weight", typeof(string));
vAppoint.Columns.Add("SumPrice", typeof(string));
for (int i = 0; i < 20; i++)
{
    vAppoint.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + (i + 2).ToString("0#"), "vAppoint中心" + i.ToString(), i, i, i);
}
GridViewTemplate template3 = new GridViewTemplate();
template3.Caption = "委外";
template3.DataSource = vAppoint;
template3.Columns["OutServiceDateGuid"].IsVisible = false;

template3.Columns["NameOrColor"].HeaderText = "委外內容";
template3.Columns["SumPrice"].HeaderText = "金額";
//template3.BestFitColumns(BestFitColumnMode.AllCells);
template3.AllowAddNewRow = false;
template3.AllowRowResize = false;
template3.ShowColumnHeaders = true;
template3.ShowRowHeaderColumn = true;
template3.AllowDeleteRow = false;
template3.AllowDragToGroup = false;
this.radGridView1.Templates.Add(template3);

GridViewRelation relation3 = new GridViewRelation(this.radGridView1.MasterTemplate);
relation3.ChildTemplate = template3;
relation3.ParentColumnNames.Add("OutServiceDateGuid");
relation3.ChildColumnNames.Add("OutServiceDateGuid");
this.radGridView1.Relations.Add(relation3);


DataTable vMembrane = new DataTable("vMembrane");
vMembrane.Columns.Add("OutServiceDateGuid", typeof(Guid));
vMembrane.Columns.Add("NameOrColor", typeof(string));
vMembrane.Columns.Add("Qty", typeof(string));
vMembrane.Columns.Add("QtyUnitName", typeof(string));
vMembrane.Columns.Add("Weight", typeof(string));
vMembrane.Columns.Add("SumPrice", typeof(string));
//for (int i = 0; i < 40; i++)
//{
//    vMembrane.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + (i + 3).ToString("0#"), "vMembrane中心" + i.ToString(), i, i, i);
//}

GridViewTemplate template4 = new GridViewTemplate();
template4.Caption = "膜";
template4.DataSource = vMembrane;
template4.Columns["OutServiceDateGuid"].IsVisible = false;

template4.Columns["NameOrColor"].HeaderText = "成品規格";
template4.Columns["Qty"].HeaderText = "數量";
template4.Columns["QtyUnitName"].HeaderText = "單位";
template4.Columns["SumPrice"].HeaderText = "金額";
//template4.BestFitColumns(BestFitColumnMode.AllCells);
template4.AllowAddNewRow = false;
template4.AllowRowResize = false;
template4.ShowColumnHeaders = true;
template4.ShowRowHeaderColumn = true;
template4.AllowDeleteRow = false;
template4.AllowDragToGroup = false;
this.radGridView1.Templates.Add(template4);

GridViewRelation relation4 = new GridViewRelation(this.radGridView1.MasterTemplate);
relation4.ChildTemplate = template4;
relation4.ParentColumnNames.Add("OutServiceDateGuid");
relation4.ChildColumnNames.Add("OutServiceDateGuid");
this.radGridView1.Relations.Add(relation4);

DataTable vCheck = new DataTable("vCheck");
vCheck.Columns.Add("OutServiceDateGuid", typeof(Guid));
vCheck.Columns.Add("NameOrColor", typeof(string));
vCheck.Columns.Add("Qty", typeof(string));
vCheck.Columns.Add("QtyUnitName", typeof(string));
vCheck.Columns.Add("Weight", typeof(string));
vCheck.Columns.Add("SumPrice", typeof(string));
vCheck.Columns.Add("CheckItem", typeof(string));
//for (int i = 0; i <10; i++)
//{
//    vCheck.Rows.Add("50ED1E91-868C-42AC-9CA9-00A56F78C3" + (i + 4).ToString("0#"), "中心" + i.ToString(), i, i, i);
//}

GridViewTemplate template5 = new GridViewTemplate();
template5.Caption = "檢測";
template5.DataSource = vCheck;

template5.Columns["OutServiceDateGuid"].IsVisible = false;

template5.Columns["NameOrColor"].HeaderText = "樣品名稱與規格";
template5.Columns["CheckItem"].HeaderText = "檢驗項目";
template5.Columns["CheckItem"].WrapText = true;
template5.Columns["Qty"].HeaderText = "數量";
template5.Columns["QtyUnitName"].HeaderText = "單位";
template5.Columns["SumPrice"].HeaderText = "金額";
//template5.BestFitColumns(BestFitColumnMode.AllCells);
template5.AllowAddNewRow = false;
template5.AllowRowResize = false;
template5.ShowColumnHeaders = true;
template5.ShowRowHeaderColumn = true;
template5.AllowDeleteRow = false;
template5.AllowDragToGroup = false;

this.radGridView1.Templates.Add(template5);

GridViewRelation relation5 = new GridViewRelation(this.radGridView1.MasterTemplate);
relation5.ChildTemplate = template5;
relation5.ParentColumnNames.Add("OutServiceDateGuid");
relation5.ChildColumnNames.Add("OutServiceDateGuid");
this.radGridView1.Relations.Add(relation5);

Open the application and scroll the grid a bit, you will see that any newly layouted cell will be on the most left corner.

Workaround:

Use the following code after populating the grid with data:

this.radGridView1.Columns[3].Width += 5;
this.radGridView1.Columns[3].Width -= 5;

Completed
Last Updated: 21 Nov 2014 14:22 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
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("Duration", typeof(TimeSpan));

for (int i = 0; i < 20; i++)
{
    dt.Rows.Add(i, "Item" + i, TimeSpan.FromMinutes(i * 10));
}

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

Try to filter via the Excel-Like filtering functionality.

Workaround: use dt.Columns.Add("Duration", typeof(string)); instead of dt.Columns.Add("Duration", typeof(TimeSpan));

Completed
Last Updated: 14 Nov 2014 15:12 by ADMIN
To reproduce:

Download the attached project and expand the first row. Collapse it and expand the second row. You will see that both rows will be expanded.

Workaround:

void radGridView1_ChildViewExpanding(object sender, ChildViewExpandingEventArgs e)
{
    Point p = this.radGridView1.PointToClient(MousePosition);
    RadElement el = this.radGridView1.ElementTree.GetElementAtPoint(p);
    if (el != null)
    {
        GridRowElement rowElement = el.FindAncestor<GridRowElement>();
        if (rowElement != null && e.ParentRow.Index != rowElement.RowInfo.Index && !e.IsExpanded)
        {
            e.Cancel = true;
        }
    }
}
Completed
Last Updated: 24 Aug 2015 13:05 by ADMIN
Note: InvalidCastException in case of converting Char to Boolean.

To reproduce: use the following code snippet:

public Form1()
{
    InitializeComponent();

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

    dt.Rows.Add("1", "Item1", "Y");
    dt.Rows.Add("2", "Item2", "N");

    this.radGridView1.DataSource = dt;
    this.radGridView1.Columns.RemoveAt(2);
    GridViewCheckBoxColumn checkBoxColumn = new GridViewCheckBoxColumn();
    checkBoxColumn.FieldName = "Active";
    checkBoxColumn.DataTypeConverter = new ToggleStateConverter();
    radGridView1.MasterTemplate.Columns.Add(checkBoxColumn);
    radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    radGridView1.EnableFiltering = true;
}

public class ToggleStateConverter : TypeConverter
{
    public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
    {
        return destinationType == typeof(ToggleState);
    }

    public override object ConvertTo(ITypeDescriptorContext context, 
        CultureInfo culture, object value, Type destinationType)
    {
        string charValue = value + "";

        switch (charValue)
        {
            case "Y":
                return ToggleState.On;
            case "N":
                return ToggleState.Off;
            case "M":
                return ToggleState.Indeterminate;
        }

        return base.ConvertTo(context, culture, value, destinationType);
    }

    public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
    {
        return sourceType == typeof(ToggleState);
    }

    public override object ConvertFrom(ITypeDescriptorContext context, 
        CultureInfo culture, object value)
    {
        ToggleState state = (ToggleState)value;

        switch (state)
        {
            case ToggleState.On:
                return "Y";
            case ToggleState.Off:
                return "N";
            case ToggleState.Indeterminate:
                return "M";
        }

        return base.ConvertFrom(context, culture, value);
    }
}

Try to filter by "Name" column. As a result FormatException  occurs because of inability to convert "Y"/"N" to Boolean although a custom TypeConverter is implemented to handle it.
Completed
Last Updated: 26 Nov 2014 10:00 by ADMIN
When current cell is checked (CheckBoxColumn) and the user scrolls one time  with the mouse wheel there is a blank space below the grid.
Completed
Last Updated: 14 Nov 2014 16:03 by ADMIN
To reproduce:

Download the attached project and run it. You will see the memory will increase
Completed
Last Updated: 27 Nov 2014 12:12 by ADMIN
It is related to GridViewCalculatorColumn, GridViewBrowseColumn.

Workaround: use a custom row behavior and override the ProcessAlphaNumericKey method to initialize the editor with the respective value.

http://www.telerik.com/help/winforms/gridview-rows-row-behaviors.html
Completed
Last Updated: 28 Nov 2014 06:56 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    BindingSource bs1 = new BindingSource();
    BindingSource bs2 = new BindingSource();

    DataTable dt1 = new DataTable();
    dt1.Columns.Add("MortgageId", typeof(string));
    dt1.Columns.Add("MortgageNo", typeof(string));
    for (int i = 0; i < 50; i++)
    { 
        dt1.Rows.Add(i, Guid.NewGuid().ToString().Substring(0, 5));              
    }
    bs1.DataSource = dt1;

    DataTable dt2 = new DataTable();
    dt2.Columns.Add("PaymentCode", typeof(string));
    dt2.Columns.Add("Description", typeof(string));

    for (int i = 0; i < 50; i++)
    {
        dt2.Rows.Add(Guid.NewGuid().ToString().Substring(0, 5), Guid.NewGuid().ToString().Substring(0, 5));
    }
    bs2.DataSource = dt2;

    GridViewMultiComboBoxColumn col1 = new GridViewMultiComboBoxColumn("MortgageId");          
    col1.DataSource = bs1;
    col1.FieldName = "MortgageId";
    col1.DisplayMember = "MortgageId";
    col1.ValueMember = "MortgageId";
    col1.Width = 70;
    this.radGridView1.Columns.Add(col1);

    col1 = new GridViewMultiComboBoxColumn("PaymentCode");         
    col1.DataSource = bs2;
    col1.DisplayMember = "PaymentCode";
    col1.ValueMember = "PaymentCode";
    col1.FieldName = "PaymentCode";
    col1.Width = 70;
    this.radGridView1.Columns.Add(col1);

    this.radGridView1.CellEditorInitialized += radGridView1_CellEditorInitialized;
}

private void radGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
    if (e.Column.Name == "MortgageId")
    {
        RadMultiColumnComboBoxElement editor = e.ActiveEditor as RadMultiColumnComboBoxElement;
        if (editor != null)
        {
            editor.EditorControl.FilterDescriptors.Clear();
            editor.EditorControl.Columns.Clear();
            editor.EditorControl.MasterTemplate.AutoGenerateColumns = false;
            editor.EditorControl.Columns.Add(new GridViewTextBoxColumn("MortgageId"));
            editor.EditorControl.Columns.Add(new GridViewTextBoxColumn("MortgageNo"));
            editor.DropDownWidth = 200;    
        }
        return;
    }
    if (e.Column.Name == "PaymentCode")
    {
        RadMultiColumnComboBoxElement editor = e.ActiveEditor as RadMultiColumnComboBoxElement;
        if (editor != null)
        {
            editor.EditorControl.FilterDescriptors.Clear();
            editor.EditorControl.Columns.Clear();
            editor.EditorControl.MasterTemplate.AutoGenerateColumns = false;
            editor.EditorControl.Columns.Add(new GridViewTextBoxColumn("PaymentCode"));
            editor.EditorControl.Columns.Add(new GridViewTextBoxColumn("Description"));
            editor.DropDownWidth = 200;    
        }
        return;
    }
}


Workaround: do not set the RadMultiColumnComboBoxElement.EditorControl.MasterTemplate.AutoGenerateColumns property to false in the CellEditorInitialized event .
Completed
Last Updated: 26 Jan 2015 14:01 by ADMIN
To reproduce: 
- Bind the grid to a self reference data, it should contain nullable bool value as well.
- Add checkbox column:
GridViewCheckBoxColumn chkBoxColumn = new GridViewCheckBoxColumn();
chkBoxColumn.EnableHeaderCheckBox = true;
chkBoxColumn.ThreeState = true;
chkBoxColumn.EditMode = EditMode.OnValueChange;

- Start and uncheck and check one of the cells (in a data row)

Workaround:
public class MyGridCheckBoxHeaderCellElement : GridCheckBoxHeaderCellElement
{
    public MyGridCheckBoxHeaderCellElement(GridViewColumn column, GridRowElement row) : base(column,row)
    {
    }

    protected override bool SetCheckBoxState()
    {
        bool hasNullValue = false;
        foreach (GridViewRowInfo row in this.ViewInfo.Rows)
        {
            object cellValue = row.Cells[this.ColumnIndex].Value;
            if (cellValue == null)
            {
                hasNullValue = true;
            }
        }

        if (!hasNullValue)
        {
            return base.SetCheckBoxState();
        }

        SetCheckBoxState(ToggleState.Indeterminate);
        return false;
    }
}
Declined
Last Updated: 08 Sep 2015 11:31 by ADMIN
Synchronization between the filter descriptors collection and the excel like filtering.
Completed
Last Updated: 23 Dec 2014 07:54 by ADMIN
Currently if a user hits the decimal separator key the grid opens a cell for edit and selects its content. If the user does not notice this he may enter 1 instead of 0.1
Completed
Last Updated: 26 Jan 2015 14:37 by ADMIN
To reproduce:
- Add GridViewCheckBoxColumn and set the EnableHeaderCheckBox property to true.
- Mark all check boxes and change the data source of the grid (use one where not all values are set to true).

Workaround:
Add new column when the data source is changed.
Completed
Last Updated: 17 Feb 2015 17:57 by ADMIN
Workaround: 

        RadImageShape hint;

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

            InitializeComponent();

            hint = radGridView1.TableElement.RowDragHint;
            new Windows7Theme();
            radGridView1.ThemeName = "Windows7";

            radGridView1.TableElement.RowDragHint = hint;
          }
Declined
Last Updated: 21 Oct 2015 10:39 by ADMIN
To reproduce:
- Bind the grid to a data source and set its RightToLeftProperty to true.

Note: use Visual Studio 2008 under Windows XP with .NET 2.0

Workaround:
Private Sub RadGridView1_ViewCellFormatting(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.CellFormattingEventArgs)
 
    If RadGridView1.RightToLeft = Windows.Forms.RightToLeft.Yes Then
        e.CellElement.TextAlignment = ContentAlignment.MiddleLeft
    End If
End Sub
Declined
Last Updated: 25 Dec 2014 11:15 by ADMIN
Created by: Mani
Comments: 1
Category: GridView
Type: Feature Request
0
i would like to customize the grid like below attached screen shot,is it possible using telerik win forms (rad grid view), if possible can you please send me sample code for that, if not possible can you suggest me alternate solution  for this requirement.
Completed
Last Updated: 20 Aug 2015 15:04 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    ColumnGroupsViewDefinition view = new ColumnGroupsViewDefinition();
    view.ColumnGroups.Add(new GridViewColumnGroup("Customer Contact"));
    view.ColumnGroups.Add(new GridViewColumnGroup("Details"));
    view.ColumnGroups[1].Groups.Add(new GridViewColumnGroup("Address"));
    view.ColumnGroups[1].Groups.Add(new GridViewColumnGroup("Contact"));
    view.ColumnGroups[0].Rows.Add(new GridViewColumnGroupRow());
    view.ColumnGroups[0].Rows[0].Columns.Add(this.radGridView1.Columns["CompanyName"]);
    view.ColumnGroups[0].Rows[0].Columns.Add(this.radGridView1.Columns["ContactName"]);
    view.ColumnGroups[0].Rows[0].Columns.Add(this.radGridView1.Columns["ContactTitle"]);

    view.ColumnGroups[1].Groups[0].Rows.Add(new GridViewColumnGroupRow());
    view.ColumnGroups[1].Groups[0].Rows[0].Columns.Add(this.radGridView1.Columns["Address"]);
    view.ColumnGroups[1].Groups[0].Rows[0].Columns.Add(this.radGridView1.Columns["City"]);
    view.ColumnGroups[1].Groups[0].Rows[0].Columns.Add(this.radGridView1.Columns["Country"]);

    view.ColumnGroups[1].Groups[1].Rows.Add(new GridViewColumnGroupRow());
    view.ColumnGroups[1].Groups[1].Rows[0].Columns.Add(this.radGridView1.Columns["Phone"]);
    view.ColumnGroups[1].Groups[1].Rows[0].Columns.Add(this.radGridView1.Columns["Fax"]);
    radGridView1.ViewDefinition = view;
    radGridView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;

    view.ColumnGroups[0].PinPosition = PinnedColumnPosition.Left;  
}

Please see the attached screenshot.

Workaround: add the columns belonging to the pinned group in a reversed order. 
Completed
Last Updated: 25 Jun 2015 12:21 by ADMIN
To reproduce, use this code:

            AddGrid();

            List<DropDownObject> lstDrp = new List<DropDownObject>();

            DropDownObject drpObj = new DropDownObject();
            drpObj.DropdownValue = "100";
            drpObj.DropdownValueID = 1;

            DropDownObject drpObj2 = new DropDownObject();
            drpObj2.DropdownValue = "100";
            drpObj2.DropdownValueID = 2;

            DropDownObject drpObj1 = new DropDownObject();
            drpObj1.DropdownValue = "101";
            drpObj1.DropdownValueID = 1;

            lstDrp.Add(drpObj);
            lstDrp.Add(drpObj2);
            lstDrp.Add(drpObj1);

            DataTable dtMain = new DataTable();
            DataColumn dcDropCol = new DataColumn();
            dcDropCol.ColumnName = "DropDown Col";
            dcDropCol.DataType = typeof(System.Int32);

            dtMain.Columns.Add(dcDropCol);

            DataRow dr = dtMain.NewRow();
            dr["DropDown Col"] = 100;
            dtMain.Rows.Add(dr);

            var uniqueDropdownValues = lstDrp.GroupBy(s => s.DropdownValue).Select(s => s.First());

            GridViewComboBoxColumn drpCol = new GridViewComboBoxColumn();
            radGridView1.Columns.Add(drpCol); //first add the column
            //drpCol.DataType = typeof(int); //then change its data type to change the filtering type from string to int

            drpCol.Name = "DropDown Col";
            drpCol.HeaderText = "Dropdown Col";
            drpCol.FieldName = "Dropdown Col";
            drpCol.DataSource = uniqueDropdownValues;
            drpCol.ValueMember = "DropdownValue";
            drpCol.DisplayMember = "DropdownValue";
            drpCol.Width = 200;
            
            drpCol.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
            drpCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            drpCol.AllowFiltering = true;

            radGridView1.EnableFiltering = true;
            radGridView1.ShowHeaderCellButtons = true;

            radGridView1.DataSource = dtMain;

            radGridView1.AllowAddNewRow = true;