RadGridView - CustomGrouping event is not firing when you change some cell value and RadGridView is data bound via DataSource property. Workaround: 1.Subscribe to CellEndEdit event of RadGridView: this.radGridView1.CellEndEdit += new GridViewCellEventHandler(radGridView1_CellEndEdit); 2. Call Refresh method of MasterTemplate: void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e) { this.radGridView1.MasterTemplate.Refresh(); }
To reproduce: - Add a checkbox column to a grid - Add the following code to the ValueChanged event: void radGridView1_ValueChanged(object sender, EventArgs e) { if (radGridView1.CurrentColumn.Name == "BoolColumn") {
Steps to reproduce: 1. Add a combobox column to a grid 2. Set DisplayMember, ValueMember and a data source to the column 3. Change a property in the data source that is used as value in the combo column You will see that the combo column will not display text for the item which value was changed
RadGridView - does not scroll correctly when AutoSizeRows and EnableFastScrolling are set to true. Code to reproduce: radGridView1.BeginUpdate(); radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; radGridView1.AutoSizeRows = true; radGridView1.EnableFastScrolling = true; DataTable dt = new DataTable(); dt.Columns.Add("A"); dt.Columns.Add("B"); dt.Columns.Add("C"); for (int i = 0; i < 50; i++) { string[] array = new string[3]; array[0] = i.ToString(); array[1] = i.ToString(); array[2] = i.ToString(); dt.Rows.Add(array); } radGridView1.DataSource = dt; radGridView1.EndUpdate();
To reproduce, use the following code: Dim decimalCol As New GridViewMaskBoxColumn decimalCol.FieldName = "DecimalPhone" Me.RadGridView1.Columns.Add(decimalCol) decimalCol.DataType = GetType(Decimal) decimalCol.FormatString = "{0:(###) ###-####}" decimalCol.MaskType = MaskType.Standard decimalCol.Mask = "(###) ###-####" Try the following cases: 1. Go to an empty cell and press "1" -> the result is that you see the mask "(1__) ___-_____", however the caret is before it and continuing to type in the editor will replace the already added character 2. Click on an empty cell - the cell is opened for edit, however, the mask is not displayed. Furthermore, when you start typing and you press "1" -> the result is that you see the mask "(1__) ___-_____", however the caret is before it and continuing to type in the editor will replace the already added character
When a Right-To-Left grid is printed the text of all print cells should be drawn with the StringFormatFlags.DirectionRightToLeft. Example: RadGridView with RightToLeft set to Yes A decimal column with negative values the values in the decimal column are drawn as 96-, 88- etc if this grid is printed the values will be -96, -88 Workaround: http://www.telerik.com/community/forums/radprintdocument-from-a-grid-wrong-format-when-right-to-left-true-in-grid
To reproduce, use the following code: ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).DataType = typeof(decimal); ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).FormatString = "{0:(###) ###-####}"; ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).MaskType = MaskType.Standard; ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).Mask = "(###) ###-####"; ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).TextMaskFormat = MaskFormat.ExcludePromptAndLiterals; and add a numeric value in one of the column cells. Result -> Exception has been thrown by the target of an invocation. Workaround: Use a custom type converter: ((GridViewMaskBoxColumn)radGridView1.Columns["MaskEditBoxColumn"]).DataTypeConverter = new MyConverter(); public class MyConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return sourceType == typeof(string); } public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(string)) { return true; } return base.CanConvertTo(context, destinationType); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { string s = value.ToString(); s= s.Insert(0, "("); if (value.ToString().Length > 3) { s= s.Insert(4, ")"); } if (value.ToString().Length > 7) { s= s.Insert(8, "-"); } return s; } return base.ConvertTo(context, culture, value, destinationType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { string s = value.ToString(); s = s.Replace("(", ""); s = s.Replace(")", ""); s = s.Replace("-", ""); return Convert.ToDecimal(s); } }
To reproduce set AddNewRowPosition is Bottom and the NewRowEnterKeyMode is EnterMovesToNextCell and add a new row via na UI Workaround: void radGridView1_RowsChanged(object sender, GridViewCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add && radGridView1.CurrentRow is GridViewNewRowInfo) { } }
To reproduce: - just subscribe to the event, sort the grid to fire it and check the property value Wordaround: ((SortDescriptor)e.NewItems[0]).PropertyName
Currently all export mechanisms export the first child view of a hierarchy row. There should be a mechanism to allow users to choose which view to be exported.
FIX. RadGridView - cursor does not work properly, when cursor has value "Cursors.SizeWE" and mouse is moving over GroupPanelElement. Steps to reproduce: 1. On a gridview make sure that a column in grouped. 2. Place your mouse on a column split just below the grouped column. 3. The cursor icon changes to a SizeWE icon to let you know that you can resize the column, This is normal. 4. Now, move the mouse (with the cursor icon = SizeWE) to the grouped column just above. 5. Now the cusor gets stucked with this SizeWE icon and never goes away on this grid. Wathever you do now the icon stays showing as a SizeWE icon. Work Around - create custom grid behavior and override OnMouseMove method. public class CustomGridBehavior : BaseGridBehavior { public override bool OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); GridTableElement table = this.GetGridTableElementAtPoint(e.Location); if (table == null) { this.GridViewElement.ElementTree.Control.Cursor = Cursors.Default; return false; } return false; } }
If one follows the guide from the online documentation to create custom summary cell element he will no be able to use it in a custom column: http://www.telerik.com/help/winforms/gridview-cells-custom-cells.html The issue is that the GetCellType method of the column is never called for summary rows.
To reproduce: bind the grid to self reference data source, and on a button click, Fill the TableAdapter Workaround: clear the relations to clear the cache and add them back after the adapter is filled: RadGridView1.Relations.Clear() Me.Table1TableAdapter.Fill(Me.Database8DataSet.Table1) Me.RadGridView1.Relations.AddSelfReference(Me.RadGridView1.MasterTemplate, "TaskID", "ParentTask")
RadGrid's HierarchyRowTraverser throws an exception when all levels are expanded and filter is applied Please, tests with the attached project.
If your screen scaling is set to 125% the location of the editors that appear in the Composite Filter Form is not correct.
To reproduce, use the following localization provider and set a fitler to a boolean column in RadGridView, via the Custom filtering dialog. class MyRadGridLocalizationProvider : RadGridLocalizationProvider { public const string CustomTrue = "CustomTRUE"; public const string CustomFalse = "CustomFALSE"; public override string GetLocalizedString(string id) { if (id == "CustomFilterDialogTrue") { return CustomTrue; } else if (id == "CustomFilterDialogFalse") { return CustomFalse; } else { return base.GetLocalizedString(id); } } } Workaround - create custom type converter as follows: public class MyBooleanConverter : BooleanConverter { public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { if (value is string) { string text = Convert.ToString(value); if (text == MyRadGridLocalizationProvider.CustomTrue) { return true; } else if (text == MyRadGridLocalizationProvider.CustomFalse) { return false; } } return base.ConvertFrom(context, culture, value); } } and apply it to the check box column: radGridView1.Columns["BoolColumn"].DataTypeConverter = new MyBooleanConverter();
One should be able to create a relation in order to produce the following hierarchy: public class MainObject { public ObservableCollection<LibraryObject> ListOfLibraryObjects { get; set; } } public class LibraryObject { public string LibraryName { get; set; } public TrajectoryManager TheTrajectoryManager { get; set; } } public class TrajectoryManager { public ObservableCollection<TrajectoryData> ListOfTrajectoryData { get; set; } } public class TrajectoryData { public string Name { get; set; } } WORKAROUND: public class MainObject { public ObservableCollection<LibraryObject> ListOfLibraryObjects; } public class LibraryObject { public string LibraryName { get; set; } public ObservableCollection<TrajectoryData> ListOfTrajectoryData { get; set; } // public TrajectoryManager TheTrajectoryManager; //} //public class TrajectoryManager //{ // public ObservableCollection<TrajectoryData> ListOfTrajectoryData; } public class TrajectoryData { public string Name { get; set; } }
Steps to reproduce: 1. Add a grid to a form 2. Add a self-reference hierarchy data and relation 3. Group the data on a column Enter edit mode for a cell and directly click on the expand/collapse sign of a hierarchy row. You will see that RadGridView does not behave correctly all the time.
Deleting a Template in the Property Builder does work.