Unplanned
Last Updated: 26 Sep 2022 12:39 by ADMIN
Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022
Created by: Martin
Comments: 1
Category: UI for WinForms
Type: Bug Report
0

Searching for a workaround for a previously reported bug, in walked into a little thing:


private void SelectAllCells()
    {
      GridViewRowInfoEnumerator rowInfoEnumerator = new GridViewRowInfoEnumerator((IHierarchicalRow) this.GridViewElement.Template);
      List<GridViewCellInfo> gridViewCellInfoList = new List<GridViewCellInfo>();
      this.MasterTemplate.SelectedCells.BeginUpdate();
      this.MasterTemplate.SelectedCells.Clear();
      while (rowInfoEnumerator.MoveNext())
      {
        GridViewRowInfo current = rowInfoEnumerator.Current;
        if (current.CanBeSelected)
        {
          foreach (GridViewCellInfo cell in current.Cells)
            this.MasterTemplate.SelectedCells.Add(cell);
        }
      }
      this.MasterTemplate.SelectedCells.EndUpdate(true);
    }
The local gridViewCellInfoList is never used and can therefore be removed, improving performance and memory usage in very very very small way.
Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022
Created by: Dinko
Comments: 0
Category: UI for WinForms
Type: Feature Request
0
You could achieve a similar behavior using a custom form. More information can be found in the Add SplashScreen to your application KB article in our documentation.
Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022

I am rewriting the RadGridViewPaste-mechanism. Therefor I want to call PastingCellClipboardContent-event using the EventDispatcher.CellClipboardPaste. therefor I need the class GridViewCellValueEventArgs. It has two constructors:

  1. A constructor with indexes. If this one is used, properties RowInfo and Column will always be null.
  2. A constructor which accepts a row and column as parameters. All properties are set and usable.

The second constructor is marked as Internal, not Public. 

Request: Can this constructor be made Public?

Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022

1. Set ThemeResolutionService.AllowAnimations = false;

2. Run the attached project and set a filter via the GridFilterButton popup

3. Click "Clear filter" option in the GridFilterButton popup

 

You will see that the GirdFilterButton visual indication is of an applied filter. However, there is no applied filter.

Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022
Exception when exporting a document with specific font from Net Core.
Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022

ThemeResolutionService.ApplicationThemeName = "Office2019Dark"; this.radDropDownList1.EnableAlternatingItemColor = true;

Unplanned
Last Updated: 16 Sep 2022 10:17 by ADMIN
ADMIN
Created by: Hristo
Comments: 2
Category: UI for WinForms
Type: Feature Request
3
Implement functionality to rotate the text in a cell.
Unplanned
Last Updated: 29 Aug 2022 09:15 by Brian

To reproduce the issue, just drag a RadToggleSwitch to the form. Then, at run time call the method:

radToggleSwitch1.SetToggleState(newValue: false, animate: false);

You will notice that the colors are changed but the thumb is not moved: 

Workaround:

            this.radToggleSwitch1.AllowAnimation = false;
            this.radToggleSwitch1.Toggle();

Unplanned
Last Updated: 11 Aug 2022 10:13 by ADMIN

Hi,

I am using CalHelper to convert recurrence rule to and from string.

It looks like when I convert rule to string and then parse it back to recurrence, some of the properties get dropped.

Please see below from my VS editor highlighting this:

 

Am I doing something wrong, or is this a bug?

 

Thanks

Anu

Need More Info
Last Updated: 03 Aug 2022 12:11 by ADMIN

I just upgraded to the latest version of Telerik products and facing the issues described below.

When dragging and drop Telerik UI objects from the toolbar on a form, the dialog box below is displayed with question but there is no button to click to answer the question and I don't where to stop it.

See screenshot attached.

Declined
Last Updated: 03 Aug 2022 10:28 by ADMIN

I have made an override for class GridViewDataRowInfo (called GridViewDataRowInfoPlus)

Every time a new row is created by RadGridView, I expect OnCreateRowInfo to be called, so I can return my own instance of GridViewDataRowInfoPlus.

This goes well until a user enters new data in a new row and when this row is added the grid, OnCreateRowInfo is not being called and an instance of GridViewDataRowInfo is added to the grid.

For me that is unexpected and undesirable. Maybe I am doing it wrong. In that case: What is the correct way to intercept the row-creation-process and return instances of my own type?

Unplanned
Last Updated: 03 Aug 2022 10:27 by ADMIN
Created by: Desislava
Comments: 0
Category: UI for WinForms
Type: Feature Request
0

The ChartLegendElement displays the legend items in a StackLayoutElement which can be either vertical or horizontal.

        public RadForm1()
        {
            InitializeComponent();

            Random rand = new Random();
            List<LineSeries> list = new List<LineSeries>();
            for (var index = 1; index <= 15; index++)
            {
                LineSeries ls = new LineSeries();
                ls.LegendTitle = "Series " + index;
                list.Add(ls);
            }

            for (int index = 1; index <= 100; index++)
            {
                foreach (LineSeries s in list)
                    s.DataPoints.Add(new CategoricalDataPoint(index, rand.Next(0, rand.Next(5, 20))));
            }
            this.radChartView1.Series.AddRange(list.ToArray());
            this.radChartView1.ShowLegend = true;
            this.radChartView1.ChartElement.LegendPosition = LegendPosition.Bottom;
            this.radChartView1.ChartElement.LegendElement.StackElement.Orientation = Orientation.Vertical;
        }

Horizontal:

Vertical:

It would be good to provide an option for wrapping the legend items:

chartview-wrap-legend-items002

Workaround: use an appropriate container for the legend items to wrap the legend item and use the space more efficiently

https://docs.telerik.com/devtools/winforms/knowledge-base/chartview-wrap-legend-items 

 

In Development
Last Updated: 03 Aug 2022 09:10 by ADMIN

Repro-steps:

  1. Create a RadGridView
  2. MultiSelect = true
  3. SelectionMode = CellSelect
  4. Fill it with lots of cells (in my case: 7 columns, 8544 rows)
  5. Press CTRL-A
  6. Press Delete

Expected behavior:

  • All rows are gone

Observed behavior:

  • 50/50 change that some rows remain.

I traced the problem back to the method GridViewSleectedCellsCollection.IsSelected / GetHashCodeString.

internal bool IsSelected(GridViewRowInfo row, GridViewColumn column) => row != null && column is GridViewDataColumn && this.hashtable.Contains((object) this.GetHashCodeString(row, column));

When a cell is selected with GridViewCellInfo.IsSelected = true, it checks if it has already been selected. It does so by calling GridViewSleectedCellsCollection.IsSelected. which checks if a HasCodeString is already in a hashtable. But, when another selected cell has the same HasCodeString, the result is (incorrectly) true, which will result in not added it to the collection of selected cells. 

I guess that is can be easily fixed by changing:

 private string GetHashCodeString(GridViewRowInfo row, GridViewColumn column)
    {
      int hashCode = row.GetHashCode();
      string str1 = hashCode.ToString();
      hashCode = column.GetHashCode();
      string str2 = hashCode.ToString();
      return str1 + str2;
    }

to:

 private string GetHashCodeString(GridViewRowInfo row, GridViewColumn column)
    {
      int hashCode = row.GetHashCode();
      string str1 = hashCode.ToString();
      hashCode = column.GetHashCode();
      string str2 = hashCode.ToString();
      return str1 + "_" + str2;
    }

Since hashcodes 1 + 23 will result in the same string as hashcodes 12 + 3.

Making this change will reduce the problem significantly, but not entirely since hashCodes will never be unique.

Declined
Last Updated: 03 Aug 2022 08:08 by ADMIN

The version of Telerik products is requested as information where submitting a support ticket. In case one forgot the version currently installed, there is no way to find it (may be I am the only one who don't know). Usually most software provide such information in the "About" box. I found it difficult and not very useful that the "About" menu of Telerik connect to the Progress Home Page instead of displaying some useful information about the current installation (user name, version, installed components, license status, etc....). There are already many other actions (request support, online documentation, etc...) that connect to the web site. The "About" box should just be displayed within VS and provide information on the installation. Or at least you link it to the Progress Control Panel and adding a page for information I mentioned and more that user may need to know when needed.

Below is an example from VS.

Unplanned
Last Updated: 02 Aug 2022 12:41 by ADMIN

This bug is not about RadGridView, but about this ticketing system. I simply did not know where to send it.

Repro steps

  1. Go to a ticket with a question/answer with a link inside of it (for example, ticket: https://feedback.telerik.com/winforms/1573736-radgridview-oncreaterowinfo-not-being-called-when-user-is-adding-a-new-row
  2. Write a nice response with bold texts, paragraphs, etc. Do not send it yet.
  3. In the original text, press on the link. You leave the page.
  4. Right now be very scared that you might have lost your answer and press BACK.
  5. You go back to the back where you were writing your answer.

Expected behavior

  • Your answer is still there as it was, including all formatting.

Observed behavior

  • Your answer is still there, but all formatting has been replaced by HTML-tags, and no button or way to convert this HTML to formatted text.
Unplanned
Last Updated: 01 Aug 2022 08:45 by ADMIN

Repro-steps

  1. Create a RadGridView
  2. Fill it with 8000 rows
  3. Select all rows
  4. Delete all rows and measure the time
  5. Repopulate the same grid with the same 8000 rows
  6. Sort on a column
  7. Select all rows
  8. Delete all rows and measure the time

Expected behavior

  • Both measured times are the same

Observed behavior

  • Deleting rows when a column is sorted take muuuuuuuuch more time

The problem is, after each (!!!) deleted row (not after all deleted rows) the sort-routine kicks in. Sorting all remaining rows. That is 7999 times to many.

One can argue that sorting after deleting something is not required at alle, since the order of the remaining rows (in this case none, but in one cases maybe more) will never change.

I also noticed a HybridIndex is used, possibly to increase performance during adding. Somehow it might hinder performance during deleting stuff.

Completed
Last Updated: 28 Jul 2022 07:58 by ADMIN
Release R3 (LIB 2022.2.711)

Please run the attached sample project, open the drop down and press the down arrow key.

Observed: application hangs

Expected: since all menu items in the drop down are disabled, nothing is expected to happen. However, the application shouldn't hangs.

Workaround:

public class CustomRadDropDownButtonElement : RadDropDownButtonElement
{
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadDropDownButtonElement);
        }
    }
    protected override RadDropDownButtonPopup CreateDropDown()
    {
        return new CustomDropDown(this);
    }
}

public class CustomDropDown : RadDropDownButtonPopup
{
    public CustomDropDown(RadElement ownerElement) : base(ownerElement)
    {
    }

    protected override void EnsureItemEnabled(RadItem item, bool isUp)
    {
        do
        {
            item = this.GetNextItem(item, !isUp);
            if (item == this.Items.Last())
            {
                break;
            }

        } while (!item.Enabled);
        if (item != null)
        {

            this.SelectItem(item);
        }
    }
}

Declined
Last Updated: 20 Jul 2022 11:08 by ADMIN
Created by: Martin
Comments: 3
Category: UI for WinForms
Type: Bug Report
0

Repro steps:

  1. Make a datatable with a string-column with a max. length of 10 characters.
  2. Add a row with a string of max. 10 characters.
  3. Bind it to a RadGridView
  4. Add an event-handler to DataError which will cancel the action if a data error occurs.
  5. In the UI, enter data into the cell. Make it longer than 10 characters.

Expected behavior:

  1. The same behavior as CellValidating.
  2. De user stays inside the editor so it can modify the text.

Observed behavior:

  1. The editor is closed, the new text is not displayed.
Declined
Last Updated: 19 Jul 2022 10:52 by ADMIN

Report steps:

  1. Make a datatable with a string-column with a max. length of 10 characters.
  2. Will the datatable with some data.
  3. Bind it to a RadGridView
  4. In Excel (or another applicatie) create a now table with some strings, this time longer that 10 characters.
  5. Paste this data from Excel to the RadGridView

Expected behavior:

  1. The strings that are to long will either cause an exception or they are truncated.

Observed behavior:

  1. The string with the value that is to long is skipped during pasting.

Extra detail:

In the method MasterGridViewTemplate.PasteDataToRow the next piece is code is located:

if (CurrentView.ViewTemplate.Columns[columnIndex].DataType == typeof(string))
{
    if (column is GridViewTextBoxColumn viewTextBoxColumn && viewTextBoxColumn.MaxLength > 0 && rowData[rowIndex].Length > viewTextBoxColumn.MaxLength)
        obj = rowData[rowIndex].Substring(0, viewTextBoxColumn.MaxLength);
}
The property viewTextBoxColumn.MaxLength returns 32767 (and not 10) which is clearly a related and possibly a separate bug.
1 2 3 4 5 6