1. If one enters edit mode by pressing F2, clicks to enter edit mode or comes from another cell in edit mode - the value in the cell that enters edit mode is selected and any user input removes the old value. 2. If one enters edit mode by directly hitting a numeric key the value in the cell is set to that numeric value, a decimal separator and a number of trailing zeros equal to the editor decimal places. Example: Let a cell value be 1.23 If one wants to input 4.56 (s)he will have to press 4 then select the trailing zeros and press 5 and 6.
has no user validation, exception when the type of parent and child keys is different
The active text box editor overlaps the bottom cell border, when RadGridView uses Windows 7 Theme.
The Active editor is not focused when the CellValidating event is canceled and navigation is performed.
Workaround: use the CellEndEdit event to work around the navigation issue:
private void CellEndEdit(object sender, GridViewCellEventArgs e)
{
this.grid.CurrentRow = null;
this.grid.CurrentRow = e.Row;
}
Currently sub-property binding is supported in the MasterTemplate of the grid (level 1). We should make this functionality available in lower levels when users are creating an object relational hierarchy.
1.Pressing left while the first cell in the gird is current, should not cycle the cells- do nothing 2. Pressing right while the last cell of the last row is current, should not cycle the cells - do nothing
1. Create a new project in VB. 2. Add a form containing TabControl with two pages. On the first page add some editor controls and on the second dock RadGridView control. 3. Bind the grid with a data source. 4. Make the first page visible. 5. Make both source code and designer visible. 6. Click debug from the toolbar. 7, Close the application.
Implement a property such as EncloseDataWithQuotes, which should get or set whether the exported data should contain quotes http://www.telerik.com/help/aspnet-ajax/p_telerik_web_ui_gridcsvsettings_enclosedatawithquotes.html
1. Create a new project with RadGridView and setup grouping. 2. Run the project, expand several groups and start navigating with left / right keys. 3. You will see that when navigating through group rows, RadGridView iterates all columns. It should select the next/previous row with a single click.
Self-referencing hierarchy does not occur, if you bind the grid inside BeginUpdate-EndUpdate method invocation.
On the form load, the grid is loaded with three parts. Upon refresh, the buttons call a method which generates the same data table but with some additional parts - to simulate a data refresh. Button 1 - Refresh Data - This button calls a method that operates the same as detailed initially in the ticket; it utilizes the BeginUpdate/EndUpdate methods around the updating of the grid. This replicates the scenario I initially described where message boxes are fired stating "Column 'xxx' does not belong to table 'fileSystem'.". Button 2 - Refresh Data 2 - This button calls a method that is modified as suggested - the BeginUpdate/EndUpdate methods have been removed and the DataSource is set directly. Button 3 - Clear Data - This button is meant to simply clear the data from the grid. It only attempts to set the DataSource property to Nothing.
To reproduce: - Add a grid to a form and open the property builder - Add couple columns and group by some of the columns - Press ok -> the grid is grouped - Open the Property Builder again, click the X button of the group to remove it and click the OK button of the Property Builder -> the group is not removed.
1) When the grid first loads, the top-left most cell is automatically selected. Before clicking anywhere within the grid view, if you hold SHIFT and click the cell to the right of the selected, the following exception is thrown. 2) You can get around the above exception by clicking a different cell in the grid view before performing a SHIFT select or CTRL+C operation is performed against the grid view. If you select a different cell, and then perform a SHIFT selection to a cell in a different column, you will experience the "An entry with the same key already exists." exception
The cell navigation is wrong when the grid is ungrouped. Steps to reproduce: 1. Enable cell selection mode 2. Navigate with keyboard 3. Group the RadGridView by one column 4. Navigate with keyboard 5. Ungroup the RadGridView's rows 6. Now Keyboard navigation is wrong.
Same behavior appears with the default selection mode:
- Group the grid and select a row in a group
- Ungroup and use the keyboard to navigate between the rows => it navigates only the rows that were in the group where we have selected a row
WORKAROUND:
private void radGridView1_GroupByChanged(object sender, Telerik.WinControls.UI.GridViewCollectionChangedEventArgs e)
{
GridViewRowInfo row = this.radGridView1.CurrentRow;
this.radGridView1.CurrentRow = null;
this.radGridView1.CurrentRow = row;
}
Custom filtering does not work when self-referencing hierarchy used in RadGridView. Work around: GridView.EnableFiltering = !GridView.EnableFiltering; GridView.EnableFiltering = !GridView.EnableFiltering;
If you set the MinWidth and MaxWidth to a column and then set AutoSizeColumnMode to Fill (all this in the form constructor) a gap will appear between the columns. Workaround: set the Fill before the MinWidth and MaxWidth and to do all these operations on Load.
Work Around:
1. Create custom text box editor.
public class MyTextBoxEditor : RadTextBoxEditor
{
private bool isValueChanging = false;
private int selectionStart = -1;
public MyTextBoxEditor()
Steps to reproduce - by using the code below follow these steps
1) Enter some text in the first cell
2) In the first ComboBox cell ("city") type the beginning of the word, for example "L", then the dataSource gets filtered and contains only items begins with "L".
3) Move down to the second Item by the down arrow key and choose it by pressing tab key
4) Now the next cell becomes focused, type in capital "M"
Result: Exception: IndexOutOfRangeException - "Index was outside the bounds of the array."
DataTable dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("city", typeof(int));
dt.Columns.Add("role", typeof(int));
radGridView1.DataSource = dt;.
radGridView1.Columns.RemoveAt(1);
radGridView1.Columns.RemoveAt(1);
DataTable dtCities = new DataTable();
dtCities.Columns.Add("id", typeof(int));
dtCities.Columns.Add("name");
dtCities.Rows.Add(1, "New York");
dtCities.Rows.Add(2, "London");
dtCities.Rows.Add(2, "Lisabon");
GridViewComboBoxColumn cityCol = new GridViewComboBoxColumn("city");
cityCol.DataSource = dtCities;
cityCol.ValueMember = "id";
cityCol.DisplayMember = "name";
cityCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
cityCol.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
radGridView1.Columns.Add(cityCol);
DataTable dtRoles = new DataTable();
dtRoles.Columns.Add("id", typeof(int));
dtRoles.Columns.Add("name");
dtRoles.Rows.Add(1, "Sales Man");
dtRoles.Rows.Add(2, "Manager");
GridViewComboBoxColumn roleCol = new GridViewComboBoxColumn("role");
roleCol.DataSource = dtRoles;
roleCol.ValueMember = "id";
roleCol.DisplayMember = "name";
roleCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
roleCol.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
radGridView1.Columns.Add(roleCol);
WORKAROUND: Replace the editor with a new one to avoid reusage
void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e)
{
if (e.EditorType == typeof(RadDropDownListEditor))
{
e.Editor = new RadDropDownListEditor();
}
}
Steps to reproduce:
1. Use the RadGridView Smart Tag to set its data source
2. Press "Add Project DataSource"
3. Select "Object"
4. Drill down and select the class you created. (see below)
5. Select the New Data Source
6. Run the project
Code to reproduce:
public class TestClass
{
public enum Month { January, Febuary, March, April, May, June, July, August, September, October, November, December }
public Month TestMonth {get; set;}
public String TestMessage {get; set;}
public TestClass(Month month, String message)
{
TestMonth = month; TestMessage = message; }
}
Workaround:
Use BindingList instead System.Windows.Forms.BindingSource.