Unplanned
Last Updated: 27 May 2021 18:03 by ADMIN
When using keyboard navigation, the ESC key currently does some things properly (like closing out of batch editing forms). However, it does not prevent the firing of certain update events (like BatchEditCellValueChanged). The ESC key should act like a "cancel" key, so no update events should fire when it is pressed.
Unplanned
Last Updated: 27 Mar 2018 18:56 by Doug
Created by: it-support
Comments: 1
Category: Grid
Type: Bug Report
0
"onrowdropping" event fires after clicking an already selected grid item (no drag and drop involved).

You can see this behavior in your demo:
http://demos.telerik.com/aspnet-ajax/grid/examples/columns-rows/rows/drag-and-drop/defaultcs.aspx
Unplanned
Last Updated: 27 May 2021 13:51 by ADMIN
Unplanned
Last Updated: 06 Nov 2017 13:04 by Attila Antal
If there are hidden columns before the ColumnGroups while exporting to excel (format Xlsx), header text of columngroups are shifted to the left.

 - Workaround, is to move the hidden column after the ColumnGroups.
Unplanned
Last Updated: 15 Dec 2022 17:11 by ADMIN
When having at least one hidden column and the AllowColumnResize is set to true, the table cells in the DetailItemTemplate do not get the correct colspan value, hence braking the table structure.
Unplanned
Last Updated: 10 Mar 2017 16:17 by ADMIN
Unplanned
Last Updated: 07 Apr 2023 14:10 by Mikayel

Applying styles to the rows when exporting to PDF causes the Grid to duplicate the column headers at page breaks.

 

Unplanned
Last Updated: 22 Oct 2020 06:51 by ADMIN
ADMIN
Created by: Marin Bratanov
Comments: 1
Category: Grid
Type: Feature Request
0
At the moment, RTL support for excel like filtering is not implemented. It displays the following issues

    - menu position is wrong (tends to show up on the column to the left)
    - controls alignment inside the menu is wrong (ltr)

You can find attached a sample and screenshots with the current behavior
Unplanned
Last Updated: 13 Jun 2024 14:39 by Russ
RadGrid batch editing fails when it is inside a RadWindow that is part of WindowManager
Unplanned
Last Updated: 18 Jul 2023 07:31 by ADMIN

When EnablePostBackOnRowClick="true" and clicking on the RadAutoCompleteBox inside the EditItemTemplate the Grid will make a PostBack.

This issue does not happen with other elements (span, input, button, etc).

Unplanned
Last Updated: 25 Apr 2016 08:14 by ADMIN
Unplanned
Last Updated: 03 Nov 2020 11:20 by ADMIN
The date pickers default to the year 1999 and do not accept inputs, so you cannot filter GridDateTimeColumn instances through the header context menu or the excel-like filtering. The standard filter item and range filter can still be used instead of context menus, but they are not available with excel-like filtering.
Unplanned
Last Updated: 09 Dec 2020 09:02 by ADMIN
Created by: Joel
Comments: 3
Category: Grid
Type: Feature Request
0
I have a RadGrid with around 150 columns and a few hundred rows. Currently, I'm looping over them and setting their widths with the resizeColumn function. Unfortunately, it's triggering a recalculation of the layout every time I call this function, so the total page load time can be in the minutes.

Oddly, much of the time was spent on the line:
e.style.width=e.offsetWidth-d+"px";

Chrome's developer tools helpfully pointed me at Forced Reflow. Apparently, when a width is set, initially no extra work is done. When another width is requested, the previous width may have changed it, so the whole layout gets recalculated.

The feature I'd like to request is a function to set column widths in bulk (accepting anything like an array or a dictionary would be fine) that doesn't trigger this recalculation mid-function.
Unplanned
Last Updated: 18 Oct 2023 11:15 by ADMIN
When using a RadGrid with static headers and grouping, columns and column headers are misaligned 
Unplanned
Last Updated: 03 Nov 2014 11:39 by Igor
GridAutoCompleteColumn columns cannot be created programmatically during OnLoad event, but only using the OnInit event.

In the attached sample, if you comment out 
panelOnInit.Controls.Add(gridOnInit);
and uncomment
panelOnLoad.Controls.Add(gridOnLoad);
when you click Edit in one row the following exception is thrown
Cannot create column with the specified type name: GridAutoCompleteColumn

But if you comment out 
panelOnLoad.Controls.Add(gridOnLoad);
and uncomment
panelOnInit.Controls.Add(gridOnInit);
the sample works

Note that if you change the GridAutoCompleteColumn for any other control type, for example GridHTMLEditorColumn, both methods will work.
Unplanned
Last Updated: 23 Jun 2022 13:29 by Claudio
Created by: Claudio
Comments: 0
Category: Grid
Type: Feature Request
0

With a lot of columns, in some cases, the latest column is clipped in a zoomed OS. For example, resolution 1920x1080 and the scale is 150% or 3840 x 2160 and the 150% scale.

 

 

Adding the following script somewhere after the ScriptManager(e.g. near the closing </form> or </body> tag) can improve the experience with zoomed scenarios:

<telerik:RadCodeBlock ID="RadCodeBlock2" runat="server">
    <script>
        if (Telerik && (Telerik.Web.Browser.chrome || Telerik.Web.Browser.edgeChromium) && Telerik.Web.UI.GridScrolling) {
            Telerik.Web.UI.GridScrolling.prototype.onGridFrozenScroll = function (args) {
                if (!this._frozenScrollCounter) {
                    this._frozenScrollCounter = 0;
                }

                this._frozenScrollCounter++;
                this._needToUpdateClientState = false;

                var gridControl = this;

                gridControl._currentElement = Telerik.Web.UI.Grid.GetCurrentElement(args);

                Telerik.Web.UI.Grid.frozenScrollHanlder = function (count) {
                    var operaVersion = 10.00;

                    if ($telerik.isOpera) {
                        operaVersion = navigator.userAgent.substring(navigator.userAgent.indexOf("Version/") + "Version".length + 1) * 1;
                    }
                    if (gridControl._frozenScrollCounter != count || gridControl._owner._isResize)
                        return;

                    if (!gridControl._lastScrollIndex) {
                        gridControl._lastScrollIndex = 0;
                    }
                    var masterTableView = gridControl._owner.get_masterTableView();
                    var masterTableViewHeader = gridControl._owner.get_masterTableViewHeader();

                    var currentElement = gridControl._currentElement;

                    if (gridControl._owner.ClientSettings.Scrolling.FrozenColumnsCount > masterTableViewHeader.get_columns().length) {
                        gridControl.isFrozenScroll = false;
                    }
                    var column, i;
                    if (gridControl.isFrozenScroll) {
                        var notFrozenColumns = gridControl._getNotFrozenColumns();

                        var scrollPercent = 0;
                        var notShownSpaceWidth = -1;

                        var currentElementWidthDiff = currentElement.scrollWidth - currentElement.offsetWidth;

                        if ((currentElementWidthDiff) != 0)
                            notShownSpaceWidth = currentElementWidthDiff;

                        scrollPercent = currentElement.scrollLeft / notShownSpaceWidth;

                        if (scrollPercent < 0)
                            scrollPercent = -1 * scrollPercent;

                        if (scrollPercent > 1)
                            scrollPercent = 1;

                        if (Telerik.Web.UI.Grid.IsRightToLeft(gridControl._owner.GridHeaderDiv) && ($telerik.isSafari || $telerik.isIE7))
                            scrollPercent = 1 - scrollPercent;

                        var gridColumns = masterTableView.get_columns();

                        var currentScrollPosition = currentElement.scrollLeft;
                        i = 0;
                        while (i < notFrozenColumns.length)//always show the last column
                        {
                            column = notFrozenColumns[i];

                            var prerviousForzenDisplayWidth = notFrozenColumns._getPreviousNotFrozenColumnWidth(column.Index);

                            if ((currentElementWidthDiff) < 0)
                                break;

                            var columnPercent = (column.Width + prerviousForzenDisplayWidth - 50) / notShownSpaceWidth; 

                            if (columnPercent <= scrollPercent && currentScrollPosition != 0) {
                                if (column.FrozenDisplay) {
                                    masterTableViewHeader._hideNotFrozenColumn(column.Index);
                                }
                            }
                            else {
                                if (!column.FrozenDisplay) {
                                    masterTableViewHeader._showNotFrozenColumn(column.Index);
                                }
                            }

                            i++;

                            if (i == (notFrozenColumns.length - 1)) {
                                var prevWidthBeforeLastHidden = 0;
                                var lastHiddenColumnIndex = 0;
                                var k = 0;
                                for (var j = 0; j < gridColumns.length - 1; j++) {
                                    if (typeof (gridColumns[j].FrozenDisplay) == 'boolean' && !gridColumns[j].FrozenDisplay) {
                                        prevWidthBeforeLastHidden += notFrozenColumns[k].Width;
                                        k++;
                                        lastHiddenColumnIndex = j;
                                    }
                                }
                                if ((prevWidthBeforeLastHidden - notShownSpaceWidth) < notFrozenColumns[notFrozenColumns.length - 1].Width + 25) {
                                    if (scrollPercent < 0.5) {
                                        var nextColumnToHide = notFrozenColumns[notFrozenColumns.length - 1];
                                        masterTableViewHeader._hideNotFrozenColumn(nextColumnToHide.Index);
                                    } else {
                                        var nextColumnToHide = notFrozenColumns[k];
                                        masterTableViewHeader._hideNotFrozenColumn(nextColumnToHide.Index);
                                    }
                                }
                            }
                        }

                        gridControl._afterColumnFreeze(masterTableView, masterTableViewHeader, scrollPercent);

                        if (scrollPercent > 0.9999 && $telerik.isFirefox) {
                            masterTableViewHeader.get_element().style.width = masterTableViewHeader.get_element().offsetWidth + "px";
                            masterTableViewHeader.get_element().style.tableLayout = "auto";
                            masterTableViewHeader.get_element().style.tableLayout = "fixed";

                            masterTableView.get_element().style.width = masterTableViewHeader.get_element().offsetWidth + "px";
                            masterTableView.get_element().style.tableLayout = "auto";

                            masterTableViewHeader.get_element().style.tableLayout = "";
                            setTimeout(
                                function () {
                                    if ($telerik.isFirefox && Sys.Browser.version >= 4)
                                        masterTableView.get_element().style.tableLayout = "fixed";
                                    masterTableViewHeader.get_element().style.tableLayout = "auto";
                                    masterTableViewHeader.get_element().style.tableLayout = "fixed";
                                },
                                100);
                        }

                        if (gridControl._owner.get_masterTableViewFooter()) {

                            gridControl._owner.get_masterTableViewFooter().get_element().style.width = masterTableViewHeader.get_element().offsetWidth + "px";
                            gridControl._owner.get_masterTableViewFooter().get_element().style.tableLayout = "auto";
                            gridControl._owner.get_masterTableViewFooter().get_element().style.tableLayout = "fixed";
                        }

                    }
                    else {
                        gridControl._owner.GridDataDiv.scrollLeft = currentElement.scrollLeft;
                    }

                    /////////////////////////////////////
                    gridControl._frozenScrollCounter = 0;
                    gridControl._needToUpdateClientState = true;
                    //gridControl._owner.updateClientState();
                    setTimeout(Telerik.Web.UI.Grid._clientStateUpdater, 500);

                    if (gridControl._owner.get_events().getHandler("scroll")) {
                        gridControl._owner.raise_scroll(new Telerik.Web.UI.GridScrollEventArgs(gridControl._currentElement));
                    }
                };

                Telerik.Web.UI.Grid._clientStateUpdater = function () {
                    if (gridControl._needToUpdateClientState) {
                        gridControl._needToUpdateClientState = false;
                        gridControl._owner.updateClientState();
                    }
                };
                clearTimeout(window.frozenScrollTimeout);
                window.frozenScrollTimeout = setTimeout("Telerik.Web.UI.Grid.frozenScrollHanlder(" + this._frozenScrollCounter + ")", 30);

            }

        }
    </script>
</telerik:RadCodeBlock>

Unplanned
Last Updated: 05 Apr 2018 14:15 by Attila Antal
ADMIN
Created by: Attila Antal
Comments: 0
Category: Grid
Type: Bug Report
0
Workaround:
Using the Page_Load event handler, verify which control has initiated the postback as well check whether the Event argument is PageSize.

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack && Request.Params["__EVENTTARGET"].StartsWith(RadGrid1.UniqueID))
        {
            // check whether the command was PageSizeChange
            if (Request.Params["__EVENTARGUMENT"].Contains("PageSize;"))
            {
                string[] details = Request.Params["__EVENTARGUMENT"].Split(';');
                GridTableView tableView = FindControl(details[0].Replace("FireCommand:", "")) as GridTableView;
                int newPageSize = int.Parse(details[2]);
                Label1.Text += "TableView Name: " + tableView.Name + ", NewPageSize: " + newPageSize+"<br />";
            }
        }
    }
Unplanned
Last Updated: 03 Jun 2022 10:30 by Frances

Steps to replicate the issue:

  1. Enable Virtualization
  2. Enable Paging
  3. Enable Scrolling
  4. Enable Sorting
  5. Bind enough data for a few pages
  6. Run the page and in the Pager click on a different page number to change the current Page
  7. Click on the Column header to Sort that Column

Observe: The Grid makes a PostBack and sorts the items, CurrentPage index gets reset back to 1.

Unplanned
Last Updated: 30 Mar 2023 09:54 by ADMIN
Created by: Margo Noreen
Comments: 2
Category: Grid
Type: Feature Request
0

When EnableLinqGrouping is set to True (default) Group Aggregates do not have Case sensitive calculations. 

Unplanned
Last Updated: 03 Nov 2020 14:22 by ADMIN