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" />
Declined
Last Updated: 02 Mar 2022 11:51 by ADMIN
When I said starting from "white space", I meant the space between the items and the pager. Please refer to attached screenshot. As you can see, we're keeping the grid the full height of the web page. if there are less items, there is a white gap between the row items and the pager. If starting the dragging to select from the white space, no items will get selected. Can we add this feature to RadGrid?
Completed
Last Updated: 01 Mar 2022 15:33 by ADMIN
Release R1 2022 SP1
Created by: Rick
Comments: 3
Category: Grid
Type: Feature Request
18
It would be useful for the header cell for Sort-able columns to display an indication that the column can be sorted.  This is useful to users when not all columns are sort-able, so they know which header cells will trigger resorting.

Elsewhere in our application, we use a double headed arrow icon to indicate use can click on header to resort on the column; the app displays the up or down arrow indicating when sort order is active.

Suggest adding a third Sort-Image-URL attribute to specify an image to use when column is not sorted ascending or descending.

At present, best I can do declaratively (w/o custom coding) is the set one of the HeaderStyle-Font properties (for example the HeaderStyle-Font-Underline) to provide a visual indication that column is sort-able.
Unplanned
Last Updated: 24 Feb 2022 10:25 by ADMIN
Created by: Allan Shenoy
Comments: 1
Category: Grid
Type: Feature Request
4
I was wondering if there was a way to freeze a row (similar to freezing a column)

Most spreadsheets (EXCEL and Sheets) have this capability and it appears to be a very popular feature that is missing in RADGrid.


I thought I saw the ability to pin a row (but could not find the details)

Do you have any suggestions and sample code?

thanks
1 2 3 4 5 6