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.
To reproduce:
Add a RadGridView and fill it with data. Set the first column's IsVisible property to false. Right click over the row to Copy the row content and paste it in Excel. All data is in a single cell. The Clipboard content does not contain the corresponding <TABLE><TR> tags.
Note: if the last columns is hidden, the line-breaks in the copied text are missing.
Workaround: create custom RadGridView and replace the wrong content in the Clipboard:
public class CustomGrid : RadGridView
{
protected override RadGridViewElement CreateGridViewElement()
{
return new CustomRadGridViewElement();
}
}
public class CustomRadGridViewElement : RadGridViewElement
{
protected override MasterGridViewTemplate CreateTemplate()
{
return new CustomMasterGridViewTemplate();
}
}
public class CustomMasterGridViewTemplate : MasterGridViewTemplate
{
public override void Copy()
{
base.Copy();
if (Clipboard.ContainsData(DataFormats.Html))
{
string data = Clipboard.GetData(DataFormats.Html).ToString();
StringBuilder sb = new StringBuilder(data);
if (!data.Contains("<TABLE>"))
{
int insertIndex = data.IndexOf("<TD>");
sb.Insert(insertIndex, "<TABLE><TR>");
}
else if (!data.Contains("</TABLE>"))
{
int insertIndex = data.LastIndexOf("<TD>");
sb.Insert(insertIndex, "</TR></TABLE>");
}
Clipboard.SetData(DataFormats.Html, sb.ToString());
}
}
}
The PDF exporting of RadGridView does not work correctly for Arabic text. The exported result revers the Arabic text.
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();
1. Create a new project with RadGridView and setup 4 level hierarchy. 2. Add a button and handle its Click event. 3. In the Click event handler expand all rows. Surround the code with calls to Begin/EndUpdate methods of RadGridView or GridViewTemplate. 4. Run the application and click the button. Workaround use the Begin.EndUpdate method of the TableElement, not the grid control
To reproduce : add a GridViewMultiComboBoxColumn and use the following code snippet:
Private Sub RadGridView1_CellEditorInitialized(sender As Object, e As GridViewCellEventArgs) Handles RadGridView1.CellEditorInitialized
Dim multiComboElement As RadMultiColumnComboBoxElement = TryCast(Me.RadGridView1.ActiveEditor, RadMultiColumnComboBoxElement)
If multiComboElement IsNot Nothing Then
multiComboElement.AutoFilter = True
If multiComboElement.EditorControl.MasterTemplate.FilterDescriptors.Count = 0 Then
Dim autoFilter As New FilterDescriptor
autoFilter.PropertyName = multiComboElement.DisplayMember
autoFilter.Operator = FilterOperator.StartsWith
multiComboElement.EditorControl.MasterTemplate.FilterDescriptors.Add(autoFilter)
multiComboElement.SelectedIndex = -1
multiComboElement.DropDownHeight = 200
multiComboElement.DropDownWidth = 800
multiComboElement.EditorControl.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill
End If
End If
End Sub
The attached gif file illustrates the behavior.
To reproduce:
-Add a RadGridView and use the following code snippet:
public Form1()
{
InitializeComponent();
//add GridViewCheckBoxColumn with DataType to BOOL
GridViewCheckBoxColumn autoTestingselectColumn = new GridViewCheckBoxColumn();
autoTestingselectColumn.DataType = typeof(bool);
autoTestingselectColumn.Name = "AutomatedTestingSelectColumn";
autoTestingselectColumn.FieldName = "AutomatedTestingSelectColumn";
autoTestingselectColumn.HeaderText = "Automated Testing Select";
radGridView1.MasterTemplate.Columns.Add(autoTestingselectColumn);
//add GridViewCheckBoxColumn with DataType to INT
GridViewCheckBoxColumn startTestingColumn = new GridViewCheckBoxColumn();
startTestingColumn.DataType = typeof(int);
startTestingColumn.Name = "StartTestingColumn";
startTestingColumn.FieldName = "StartTestingColumn";
startTestingColumn.HeaderText = "StartTesting";
radGridView1.MasterTemplate.Columns.Add(startTestingColumn);
List<Item> items = new List<Item>();
for (int i = 0; i < 5; i++)
{
items.Add(new Item(Guid.NewGuid().ToString(),"Name"+i));
}
this.radGridView1.DataSource = items;
//set the AutoSizeColumnsMode property to Fill
this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
}
public class Item
{
public string UniqueIdentifier { get; set; }
public string Name { get; set; }
public Item(string uniqueIdentifier, string name)
{
this.UniqueIdentifier = uniqueIdentifier;
this.Name = name;
}
}
-Run the project. As a result 4 columns are displayed: two programmatically added and two coming from the data source.
-Now open the Property Builder at design time and add a GridViewCheckBoxColumn.
-Run the project. As a result, 5 columns are displayed: one added at design time, two programmatically added, two coming from the data source.
-Open the Property Builder again and delete the GridViewCheckBoxColumn.
-Run the project. You will notice that only two columns are displayed. The columns, coming from the data source are not generated.
Workaround: delete columns using the Columns collection at design time, instead of using the property Builder.
When a mask is set to a GridViewMaskBoxColumn and string is applied as value, the visual element will show only the string without the mask literals. E.g. mask is set to ####/# and value is set to string "11112" the view will be 11112 instead of 1111/2. Ways to achieve this: 1. Use CellFormatting. 2. Use a custom type converter: Example of a custom TypeConverter could be seen from the following feedback item: http://feedback.telerik.com/Project/154/Feedback/Details/112463-fix-radgridview-the-textmaskformat-property-of-gridviewmaskboxcolumn-is-not-ta
To reproduce:
public Form1()
{
InitializeComponent();
this.radGridView1.Columns.Add("Col1");
this.radGridView1.Rows.Add("word \u00AD word");
this.radGridView1.Rows.Add("word - word");
}
Workaround: replace "\u00AD" with "-"
private void radGridView1_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
e.CellElement.Text = e.CellElement.Text.Replace("\u00AD", "-");
}
To reproduce: 1. Drag a grid from the Toolbox and drop it onto the form 2. Open the designer 3. Set the RadGridView.AutoGenerateHierarchy property to true. 4. Open the smart tag and set the DataSource property. As a result the grid templates and relations will be created. 5. Try to open the Property Builder. It opens successfully. 6. Close the Property Builder and add a new templated from the smart tag. 7. If you try to open the Property Builder again you will obtain the error. Please refer o the attached gif file illustrating the behavior. Workaround: set the AutoGenerateHierarchy to false in order to open the Property Builder.
Workaround: check the attached project
Workaround: List<object> list = new List<object>(array); this.radGridView1.DataSource = list;
The ActiveEditor property of the event arguments of the CellEndEdit event always returns null. The property should be either removed or made return proper data.
1 .Add RadgridView to Form 2. Set "AllowSearchRow" property to True 3. Add a row and place the word "Gießen" (name of a city) in a column 4. When the program is running type "Giessen" in the AutoSearch Row. After the "n" an ArgumentException is thrown.
To reproduce:
- Enable the alternating row color and change the current cell as fast as you can.
Workaround:
void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
if (e.RowElement.RowInfo.Index %2 ==0)
{
e.RowElement.DrawFill = true;
e.RowElement.GradientStyle = GradientStyles.Solid;
e.RowElement.BackColor = Color.Aqua;
}
else
{
e.RowElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
e.RowElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
}
}
To reproduce: use DataAccess to connect to Northwind.Customer table:
public Form1()
{
InitializeComponent();
EntitiesModel1 context = new EntitiesModel1();
var query = (from c in context.Customers where c.CustomerID.Contains("f") select c).ToList();
this.radGridView1.DataSource = query;
SortDescriptor descriptor = new SortDescriptor();
descriptor.PropertyName = "CustomerID";
descriptor.Direction = ListSortDirection.Ascending;
this.radGridView1.MasterTemplate.SortDescriptors.Add(descriptor);
this.radGridView1.CurrentRow = this.radGridView1.Rows.Last();
}
Run the project and press the Delete key several times.
Workaround: use BindingSource as RadGridView.DataSource:
BindingSource bs = new BindingSource();
bs.DataSource = query;
this.radGridView1.DataSource = bs;
1. Create a new project and open a form at design mode. 2. Drop RadGridView component on the form. 3. Bind it to some data source. 4. Open the property builder. 5. Select a column and change its name property. You will see that the column name remains the same in the columns list located at left.
To reproduce:
GridViewHyperlinkColumn col = new GridViewHyperlinkColumn();
col.FieldName = "Name";
col.HyperlinkOpenAction = HyperlinkOpenAction.DoubleClick;
Workaround:
Use the CellDoubleClick event:
void radGridView1_CellDoubleClick(object sender, GridViewCellEventArgs e)
{
if (e.Column is GridViewHyperlinkColumn)
{
string hyperlink = e.Value.ToString();
}
}