Completed
Last Updated: 20 Nov 2023 14:30 by ADMIN
Release R3 2023 SP1 (2023.3.1114)

When the control is populated with hierarchy data, the current arrow icon and the expander icon overlap each other. This is observed when you click on a row.

As a workaround, we can increase the size of the indent column to leave enough space for both icons.

this.radVirtualGrid1.TableElement.IndentColumnWidth = 40;

Then we can move the current row arrow icon to the left (or right, depending on your requirement) in the CellFormatting event handler of the control.

private void radVirtualGrid1_CellFormatting(object sender, VirtualGridCellElementEventArgs e)
{
    if (e.CellElement is VirtualGridIndentCellElement)
    {
        var indentCell = e.CellElement as VirtualGridIndentCellElement;
        indentCell.ImageLayout = ImageLayout.None;
        indentCell.ImageAlignment = ContentAlignment.MiddleLeft;
    }
}
Here is the result of executing the above code:

 

 

 

Unplanned
Last Updated: 15 Oct 2024 09:55 by lucas
Similar to RadGridView control. 
Completed
Last Updated: 20 Nov 2023 07:43 by ADMIN
Release R3 2023 SP1 (2023.3.1114)

Currently, this behavior is available for RadGridView and the parent row becomes current/selected after expanding. Please refer to the attached gif file for RadGridView and the missing functionality for RadVirtualGrid.

 

 

Unplanned
Last Updated: 19 Dec 2023 12:55 by ADMIN

The horizontal scrollbar should not appear on top of the data row.

Example

Declined
Last Updated: 13 Mar 2023 11:52 by ADMIN
Created by: Martin
Comments: 2
Category: VirtualGrid
Type: Feature Request
0

Right now, when a VirtualGridDateTimeEditor is displayed in a RadVirtualGrid, and the user chooses to enter the date (and not use the date time picker), then the user has to enter the date inclusing the separators.

So a Dutch date has format: "dd-MM-yyyy", and the user has to enter "31-12-2023", including the dashes.

Hereby my request for a new feature:  Entering dates without the separators / dashes, thus: "3112023". So at the moment the user enters two digits, move to the next segment, etc. The request goes for the time segments.

This would be a performance gain while doing a lot of data entry.

Declined
Last Updated: 15 Sep 2023 10:54 by ADMIN

Repro steps:

  1. Create a RadVirtualGrid
  2. Give it a DateTime column
  3. Make sure the editor (VirtualGridDateTimeEditor) accepts dutch formats for dates (dd-MM-yyyy)
  4. Add a row with value: 30-11-2023

  5. Double click on the value and try to change it my literally typing: "31-12-2023"

Observed behavior:

  • A field with the value 01-12-2023

    (this happens as soon as you type "31")
  • The user needs to first enter the month, then the day to correct this.

Expected behavior:

  • A field with the value: 31-12-2023

Observation / suggestion:

  • The controle tries to validate and correct EVERY input, even when the input is not finished yet. Everybody knows "31-11-2023" is an incorrect value. But during changing it, this should not matter. The scope at that point should be: Making the user happy by accepting the input. When the user leaves the field, or enters the last digit, validation should take place. Or, if halfway entering the value, the totale date is invalid, do not change it and wait for the user to complete.

 

Unplanned
Last Updated: 19 Dec 2023 12:55 by ADMIN

 

Elements in the child grid that are outside of the parent bounds are not active. This means that you can't resize the column, edit, filter, sort or use any other build-in behavior.

Example 2

 

Completed
Last Updated: 27 Mar 2023 06:39 by ADMIN
Release R1 2023 SP1

RadVirtualGrid.Selection.HasSelection (VirtualGridSelection.HasSelection) or is never false.

RadVirtualGrid grid = new RadVirtualGrid();
var hasSelection1 = grid.Selection.HasSelection; 
_grid.Selection.ClearSelection();
var hasSelection2 = grid.Selection.HasSelection;

After initializing the grid, and not loading anything, HasSelection is true, while nothing is selected.

After clearing the selection, HasSelection remains true.

This property is used in your own code as a pretest for some operations. (Like Copy or Cut).

Am I interpreting this property the wrong way?

Completed
Last Updated: 27 Mar 2023 06:36 by ADMIN
Release R1 2023 SP1
Created by: Martin
Comments: 1
Category: VirtualGrid
Type: Bug Report
0

Repro steps:

  • Create a RadVirtualGrid
  • Fill it with some records.
  • Make sure nothing is selected (RadVirtualGridElement.CurrentCell is null)
  • Press CTRL-C
  • A NullReferenceException is thrown (this because RadVirtualGridElement.CopyToClipboard accesses CurrentCell.ViewInfo while CurrentCell is null.)

Exception:

Message             : Object reference not set to an instance of an object.
Type                : System.NullReferenceException
Source              : Telerik.WinControls.GridView
Stack trace         : Telerik.WinControls.UI.RadVirtualGridElement.CopyToClipboard(Int32 startRow, Int32 startColumn, Int32 endRow, Int32 endColumn, VirtualGridViewInfo viewInfo, Boolean selectedOnly, Boolean cut)
                      Telerik.WinControls.UI.RadVirtualGridElement.CopySelection()
                      Turien.Windows.Forms.Telerik.VirtualGrid.VirtualGridViewPlus.RadVirtualGridElementPlus.CopySelection()
                      Turien.Windows.Forms.Telerik.VirtualGrid.VirtualGridViewPlus.VirtualGridInputBehaviorPlus.HandleUnhandledKeys(KeyEventArgs keys)
                      Telerik.WinControls.UI.VirtualGridInputBehavior.HandleKeyDown(KeyEventArgs args)
                      Telerik.WinControls.UI.RadVirtualGrid.OnKeyDown(KeyEventArgs e)
                      System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
                      System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
                      System.Windows.Forms.Control.WmKeyChar(Message& m)
                      System.Windows.Forms.Control.WndProc(Message& m)
                      System.Windows.Forms.ScrollableControl.WndProc(Message& m)
                      Telerik.WinControls.RadControl.WndProc(Message& m)
                      System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
                      System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
                      System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
                      System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
                      System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
                      System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
                      System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
                      System.Windows.Forms.Application.Run(Form mainForm)
                      Turien.Schade.PremiumCalculator.LookupTableManager.Program.Main()


Completed
Last Updated: 27 Mar 2023 06:36 by ADMIN
Release R1 2023 SP1

When copying to from the RadVirtualGrid to the clipboard, the HTML format is not supported.

I was thinking about creating a feature request, but I really think this is a bug, because:

  1. It is not consistent with its little brother RadGridView, which does support HTML.
  2. HTML should be supported by Teleriks own documentation: https://docs.telerik.com/devtools/winforms/controls/virtualgrid/copy-paste-cut 

Please, implement the support for HTML.

Completed
Last Updated: 27 Mar 2023 06:36 by ADMIN
Release R1 2023 SP1

When I use the Copy method in the RadGridView, the content is copied to the clipboard in multiple formats. Each format can be cancelled. If a format is cancelled it is not even serialized into the DataObject. This way a programmer can replace the copy-routine for that format with his own.

When I do the same with RadVirtualGrid, and I only want to copy format CSV and I want to cancel the rest, nothing is copied to the clipboard. The funny thing is, inspecting the code, the data is always serialized to the DataObject BEFORE the event is fired to find out if that action is needed. This is a performance penalty.

So these two behaviors are inconsistent. It is also inconsistent the the Paste-operations of both grids.

Current code:

public void CopyToClipboard(
      int startRow,
      int startColumn,
      int endRow,
      int endColumn,
      VirtualGridViewInfo viewInfo,
      bool selectedOnly,
      bool cut)
    {
      DataObject dataObject = new DataObject();
      string data1 = this.ProcessContent(DataFormats.Text, startRow, startColumn, endRow, endColumn, viewInfo, selectedOnly, cut);
      dataObject.SetData(DataFormats.UnicodeText, false, (object) data1);
      VirtualGridClipboardEventArgs args1 = new VirtualGridClipboardEventArgs(false, DataFormats.UnicodeText, dataObject, this.CurrentCell.ViewInfo);
      this.OnCopying(args1);
      if (args1.Cancel)
        return;
      dataObject.SetData(DataFormats.Text, false, (object) data1);
      VirtualGridClipboardEventArgs args2 = new VirtualGridClipboardEventArgs(false, DataFormats.Text, dataObject, this.CurrentCell.ViewInfo);
      this.OnCopying(args2);
      if (args2.Cancel)
        return;
      string data2 = this.ProcessContent(DataFormats.CommaSeparatedValue, startRow, startColumn, endRow, endColumn, viewInfo, selectedOnly, cut);
      dataObject.SetData(DataFormats.CommaSeparatedValue, false, (object) data2);
      VirtualGridClipboardEventArgs args3 = new VirtualGridClipboardEventArgs(false, DataFormats.CommaSeparatedValue, dataObject, this.CurrentCell.ViewInfo);
      this.OnCopying(args3);
      if (args3.Cancel)
        return;
      Clipboard.SetDataObject((object) dataObject);
    }
Suggested code:


public void CopyToClipboard(
	int startRow,
	int startColumn,
	int endRow,
	int endColumn,
	VirtualGridViewInfo viewInfo,
	bool selectedOnly,
	bool cut)
{
	DataObject dataObject = new DataObject();

	VirtualGridClipboardEventArgs eventArgs = new VirtualGridClipboardEventArgs(false, DataFormats.UnicodeText, dataObject, CurrentCell.ViewInfo);
	OnCopying(eventArgs);
	bool useText = !eventArgs.Cancel;
	
	eventArgs = new VirtualGridClipboardEventArgs(false, DataFormats.UnicodeText, dataObject, CurrentCell.ViewInfo);
	OnCopying(eventArgs);
	bool useUnicodeText = !eventArgs.Cancel;

	if (useText || useUnicodeText)
	{
		string text = __instance.ProcessContent(DataFormats.Text, startRow, startColumn, endRow, endColumn, viewInfo, cut);
		if (useText)
			dataObject.SetData(DataFormats.Text, false, text);
		if (useUnicodeText)
			dataObject.SetData(DataFormats.UnicodeText, false, text);
	}
	eventArgs = new VirtualGridClipboardEventArgs(false, DataFormats.Text, dataObject, CurrentCell.ViewInfo);
	OnCopying(eventArgs);
	if (!eventArgs.Cancel)
	{
		string csv = __instance.ProcessContent(DataFormats.CommaSeparatedValue, startRow, startColumn, endRow, endColumn, viewInfo, selectedOnly, cut);
		dataObject.SetData(DataFormats.CommaSeparatedValue, false, csv);
	}
	
	if (dataObject.GetFormats().Length > 0)
		Clipboard.SetDataObject(dataObject);
}

Unplanned
Last Updated: 16 Nov 2021 12:46 by ADMIN

Please refer to the attached sample project and the gif file. You will notice that when resizing the grid, in certain cases unnecessary horizontal scrollbar appears.

Completed
Last Updated: 07 Jun 2021 16:24 by ADMIN
Release R2 2021 SP1
I'm trying to save the layout of a VirtualGrid to retain the user's settings and I started setting up the custom serialization rules and was continually getting errors.
Completed
Last Updated: 18 Feb 2021 12:21 by ADMIN
Release R1 2021 SP2

I have a RadVirtualGrid with hierarchical data. When I change the page, then expand a row, and then hit the tab key I get an ArgumentOutOfRangeException:

Value of '-3838' is not valid for 'Value'. 'Value' must be between 'Minimum' and 'Maximum'.
Parameter name: Value

 

Completed
Last Updated: 06 Apr 2021 13:41 by ADMIN
Release R2 2021

When you have a RadVirtualGrid with hierarchy and after expanding a row if you right-click a cell in the child grid and select the "Copy" item, it doesn't copy the text of the cell I right-clicked, it copies the text of the first cell. 

Please test with the attached sample project.

Completed
Last Updated: 08 Feb 2021 13:53 by ADMIN
Release R1 2021 SP2

Hi,

I have a RadVirtualGrid. I add a filter descriptor and then fetch the filtered data from the data store. I then clear the filters and perform a different fetch from the store. However, when I click in the filter value textbox the text from the previous filter operation is still there even though I purposely call radVirtualGrid.FilterDescriptors.Clear() prior to fetching the data from the store.

The filter text doesn't display in the filter row for the column where the filter was entered until I click in the text edit area.

How do I get rid of the text from the previous filter?

thanks,

Mike

Declined
Last Updated: 27 Jan 2021 13:39 by ADMIN

dear sir ,

i have a problem keydown event does not fire in add new row ?

i want to move to the next cell when i hit Enter key after entering new value and when i reach the last cell of the add new row and type enter the new row will automatically added to the grid....

what's i have to do.....

please any suggest ? thx

Completed
Last Updated: 23 Feb 2021 10:37 by ADMIN
Release R1 2021 SP2
1.The editor overlapping other cells after editing.

2. The arrow, that is actually meant to open the DropDown, cannot be clicked. Only the cell under it is clicked instead.
Completed
Last Updated: 12 Jun 2020 16:00 by ADMIN
Release R2 2020 SP1

Please use the following code snippet and click the filter button for the first column in the virtual grid. You will notice that the default menu is shown:

        RadContextMenu menu = new RadContextMenu();
        public RadForm1()
        {
            InitializeComponent();
            RadDateTimePicker aDateTimePicker = new RadDateTimePicker();
            RadMenuItem theMenuItem = new RadMenuItem();
            theMenuItem.MinSize = new Size(200, 30);
            RadHostItem theHostItem = new RadHostItem(aDateTimePicker);
            theMenuItem.Children.Add(theHostItem); 
            menu.Items.Add(theMenuItem);
            this.radVirtualGrid1.RowCount = 50;
            this.radVirtualGrid1.ColumnCount = 5;
            this.radVirtualGrid1.CellValueNeeded+=radVirtualGrid1_CellValueNeeded;

            this.radVirtualGrid1.AllowFiltering = true;
            this.radVirtualGrid1.ContextMenuOpening+=radVirtualGrid1_ContextMenuOpening;
        }

        private void radVirtualGrid1_ContextMenuOpening(object sender, VirtualGridContextMenuOpeningEventArgs e)
        {
            int i;
            string theMenuItemText;

            if (e.RowIndex == -3 && e.ColumnIndex < 1)
            {
                e.ContextMenu = menu.DropDown; 
            }
        }

        private void radVirtualGrid1_CellValueNeeded(object sender, VirtualGridCellValueNeededEventArgs e)
        {
            e.Value = Guid.NewGuid().ToString();
        }

Completed
Last Updated: 03 Oct 2019 11:45 by ADMIN
Release R3 2019 SP1 (LIB 2019.3.1007)

To reproduce: 

Set the RowSpacing to 10. Press down until the last cell is selected. The view is not scrolled down.