Unplanned
Last Updated: 02 May 2025 14:59 by Chris
Created by: Chris
Comments: 0
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to request a way to insert a new record at the bottom of the InPlace Editable RadGrid so that the row would be within the RadGrid container.

Thank you!

Unplanned
Last Updated: 31 Jul 2024 10:53 by Juraj

It would be good to add this functionality for a better customization of the Grid's newly inserted rows.

Unplanned
Last Updated: 31 Jul 2024 08:19 by ADMIN
Dear Telerik Technical Support Team,

I am reaching out to inquire about the accessibility features of the RadGrid component in C# Webforms, specifically regarding the ability to perform grouping and resizing of columns using keyboard-only navigation in compliance with WCAG 2.2 Level AA standards.

Our organization is committed to ensuring that our web applications meet the Web Content Accessibility Guidelines (WCAG) 2.2 Level AA requirements. A critical part of this compliance involves enabling users to group and sort columns in data grids using only the keyboard.

Could you please confirm if the RadGrid component supports keyboard-only grouping and resizing of columns? Additionally, we would appreciate any guidance or documentation you can provide on how to implement and test these accessibility features within the RadGrid component to ensure compliance with WCAG 2.2 Level AA.

Thank you for your assistance with this matter. We look forward to your prompt response.
Completed
Last Updated: 16 Jan 2024 15:31 by ADMIN
Release 2024 Q1
Created by: Bill O'Neil
Comments: 0
Category: Grid
Type: Feature Request
0

When the AriaSupport for the Grid is turned on, an aria-label is added to each column header automatically using the UniqueName of the column. The problem is - UniqueName doesn't support empty spaces - all "labels" must be single words or use Underscores - and the screen readers say "underscore."

So my column of "call_date" results in "Call underscore Date" - which is not useful for visually impaired people.

Unplanned
Last Updated: 27 Jun 2023 18:30 by Rathna

ResizeGridOnColumnResize is not working the same way when Grid has StaticHeaders.

I want to resize the grid based on the contents and still be able to scroll with headers.

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: 27 Jan 2023 08:58 by ADMIN
Created by: Imported User
Comments: 4
Category: Grid
Type: Feature Request
4
Please add support for tags in exported PDF documents. We need these tags for accessibility purposes. Currently, when we export a PDF from a RadGrid, it is created without any tag structure, which can make it difficult for a screen reader to process correctly.
Unplanned
Last Updated: 20 Sep 2022 11:05 by eDAD
Created by: eDAD
Comments: 0
Category: Grid
Type: Feature Request
1

When EnableAriaSupport is enabled for the RadGrid, the PagerItem receives role='presentation' and hence is ignored by the screenreaders.

Declined
Last Updated: 26 Aug 2022 10:57 by ADMIN
ADMIN
Created by: Viktor Tachev
Comments: 1
Category: Grid
Type: Feature Request
2

			
Completed
Last Updated: 24 Jun 2022 13:24 by ADMIN
Created by: Wandi
Comments: 5
Category: Grid
Type: Feature Request
1
There are more than 30 items (including task title) in RadGrid Task
I can't see Edit Template because my display resolution is not enough to show all Tasks.
I always get this problem with small resolution monitor.
Can you make it collapsible?
How do I go to EditTemplate? The task is not in the screen
Declined
Last Updated: 24 Jun 2022 11:32 by ADMIN
It would be convenient to be able to specify default values for SortAscImageURL and SortDescImageURL at a level above the individual column elements

At present the SortAscImageURL and SortDescImageURL attributes appear in the GridBoundColumn element.  This requires specifying them for each column definition.  Often the UI will use the same icons for all sort-able columns.
An obvious choice might be the <SortingSettings> element, as is done for the sorting tool tip and sorted background color.
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>

Completed
Last Updated: 21 Jun 2022 22:04 by ADMIN
The selector area of the dragging to select automatically goes all the way to the left; could that be changed so that the area shows up only from where the user clicked to where the cursor goes, like Windows Explorer? (see attached image)
Declined
Last Updated: 13 May 2022 17:00 by ADMIN
Declined
Last Updated: 20 Apr 2022 15:46 by ADMIN
The grid should provide an in-built option for the filtering to be initiated only on Enter key press and not on Tab or input blur.
Completed
Last Updated: 20 Apr 2022 15:37 by ADMIN
It would be nice if you provided the same level of documentation on server side programming as you do on client side programming. Specifically I suggest you include some documentation on finding and manipulating controls on the itemdatabound event. Currently the only source for this information is in your forums and most of it consists of try this, if that doesn't work than try that. This is very frustrating because server side programming on RadGrid is substantially different than in Microsoft Grid Control.
Completed
Last Updated: 19 Apr 2022 08:44 by ADMIN
Declined
Last Updated: 02 Mar 2022 13:25 by ADMIN
Created by: DanKline
Comments: 1
Category: Grid
Type: Feature Request
1
I'm a great fan of KendoUI and love the declarative binding and property declaration with JavaScript Literal notation.  However, Rest Binding in SharePoint is still immature and there is very little support for relationships and data projections.  As a result, I find myself coming back to the SPRadGrid.  However, I find the functionality very limited and in some cases non-functional.  I'd love to see a rewrite of the SPRadGrid that has more functions and used declarative bindings.    I'd also like to see  solution package distributed with a working Grid sample so that it was easier to modify it and deploy a customized solution.  SharePoint is complex.  It's always easier to start with a working sample.
Declined
Last Updated: 02 Mar 2022 12:08 by ADMIN
Declined
Last Updated: 02 Mar 2022 12:07 by ADMIN
Created by: Tim Weckx
Comments: 1
Category: Grid
Type: Feature Request
1
It would be great if you could set a property on a column (like in WinForms) to hide that column from the column chooser.

e.g. <telerik:GridBoundColumn ShowInColumnChooser="false" />
1 2 3 4 5 6