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.

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: 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
Unplanned
Last Updated: 07 Feb 2022 12:39 by Avonelle Lovhaug

I have a grid with several columns - so many that they cannot all appear at once. Users are allow to reorder the columns as they wish. If my grid is set to FrozencolumnsCount=0, then when they drag a column to the edge of the grid, the grid starts to horizontally scroll so that they can see additional columns and drop their column in the desired location.

However if I set FrozenColumnsCount=1, then when they drag a column to the edge of the grid, the grid does not horizontally scroll.

Unplanned
Last Updated: 26 Jul 2021 06:43 by Kasim

The SearchRow in RadGridView WinForms is extremely good.

https://docs.telerik.com/devtools/winforms/controls/gridview/rows/search-row 

How can we implement the same in ASP.Net Ajax RadGrid?

Unplanned
Last Updated: 12 Jul 2021 14:12 by bryan

In radgrid, when you are filtering the grid using EXCEL like filtering, you get a Listbox where you can enter a filter string, which then shows a filterlist of checkboxes that match that filter string.  There is a checkall checkbox at the very top.  If you select that, it selects all the filtered list checkboxes and checks them.

When you then click the filter button to apply the selection, the filter criteria is ignored, and no grid filtering occurs.

I did find a "fix" for this, but it is not useable.  

https://www.telerik.com/support/code-library/make-check-all-to-include-only-displayed-list-options-in-excel-like-filtering

The problem with this fix is that it works on the first applied filter, but if you the try to filter again, the Listbox takes a extremely long time to load the checkbox list, and so is not practical.

Is there a better solution?  Has this even been identified as a bug which will be fixed?   

Unplanned
Last Updated: 15 Jun 2021 14:55 by ADMIN
As a user I would like to see on each grid the aggregate function totals for the actively displayed grid and on the last page the aggregate function totals for the active displayed grid and the data set aggregate function totals so that each page displays only its page level total and on the last page displays the full total of all data displayed.

See attached examples:
Example: Page level Total on every page and on the last page Page level Total plus Grid whole Total on the last page.
Unplanned
Last Updated: 15 Jun 2021 12:20 by ADMIN
Created by: David
Comments: 0
Category: Grid
Type: Feature Request
3
I grouped my grid on two levels.
Second level still contains many records.
It would be nice to allow paging on second level
Unplanned
Last Updated: 14 Jun 2021 13:10 by ADMIN
Created by: Daniel
Comments: 0
Category: Grid
Type: Feature Request
2
Hello,

RadGrid that has a master and detail tables and is rebinded to another data-source. Please automatically change all information and details of the RadGrid, including details-view. Currently,  only the master table is rebinded, not the details.

Please see an example of the problem in the my forum question:
 http://www.telerik.com/forums/radgrid-detailtable-doesn-t-rebind!

Thanks,
Daniel.
.NET Programmer at
ISR Corp
Unplanned
Last Updated: 14 Jun 2021 10:54 by ADMIN
ADMIN
Created by: Eyup
Comments: 0
Category: Grid
Type: Feature Request
3
Basically, improve the approach suggested in the following article to provide a more generic solution, applicable for multiple aggregate fields:
http://www.telerik.com/help/aspnet-ajax/grid-aligning-items-in-group-header.html
Unplanned
Last Updated: 13 Jun 2021 11:18 by ADMIN

In some cases, inside the Grid table, the tfoot element is rendered before the tbody element. This causes some readers to read the footer before the body. A possible workaround is moving the tfoot after the tbody in the OnGridCreated event:

<script>
function OnGridCreated(sender, args) {
    var $ = $telerik.$;
    $('tfoot').each(function (index, item) {
        var $item = $(item);
        var $next = $item.next();
        if ($next[0]) {
            if ($next[0].tagName.toLowerCase() == "tbody") {
                 $item.insertAfter($next);
            }
        }
    });
}
</script>

 

A forum discussion on the topic:

 

Unplanned
Last Updated: 11 Jun 2021 11:39 by ADMIN
Created by: Daniel
Comments: 0
Category: Grid
Type: Feature Request
3
Hello,

If the RadGrid is set to RTL:
RadGrid1.MasterTableView.Dir = Telerik.Web.UI.GridTableTextDirection.RTL
 
When a user wants to resize a column, the LEFT border of the column should be resizable. When it is moved, the width of the column should expand or shirk, accordingly. However, in RadGrid the RIGHT border of the column is always resizable – also in right-to-left. This is very confusing and unnatural for RTL users.

See video that shows the current behavior:
 http://youtu.be/mGpYNs0x5gc

See another video that shows how it works nicely in Excel. I think it should work like this in RadGrid, too:
http://youtu.be/GMO7tWzt-mw

Would love to see this implemented.

Thank you,
Daniel.
Unplanned
Last Updated: 11 Jun 2021 09:27 by ADMIN
Created by: Robert
Comments: 2
Category: Grid
Type: Feature Request
7
Need the ability to Sort Grouped Items (ex. Salesperson) by the value of another Grouped Item (Sum of Sales).

Currently, there is NO WAY to sort a list of Salespeople by Total Sales. You can only perform an alpha sort on Salesperson's Name.

So, if you have a list of 100 Salespeople and their total product sales across dimensions like (product, geographic) you will have to MANUALLY look through and note who are your top Salespeople !!!!!!!!!!!

How can this be acceptable ??

An alpha sort on Salesperson is the best you guys can do??
Unplanned
Last Updated: 11 Jun 2021 09:25 by ADMIN
Created by: Marco Basta
Comments: 1
Category: Grid
Type: Feature Request
7
User friendly Grid filtering...
I developed a custom feature where I display the filter expression used in a grid. This is very helpful so that users do not have to guess or remember what exactly they filtered on. And it provides a single click to clear all the filters at once. Before, all they saw was that certain columns are being filtered by, but they don't see what the filters actually are (EqualTo, Not EqualTo, StartsWith,,,etc) and they had to clear one filter at a time to get rid of all filtering.
There is not much to it but it's subject to break if Telerik makes changes to the their filtering mechanism (which did happen). It would be nice if this feature can be standard so it will be part of Q.A after any changes to the Grid.
Attached is a working sample page to see this in action. See comments in code.
Unplanned
Last Updated: 31 May 2021 14:36 by ADMIN
Applies to all model-bound controls; Tree-list, etc..

Current data-annotation support includes validation.

Please include handling of the following attributes
- Display Name defaults for databound columns
- Text boxes and labels width based on max-length
- Display attributes
- auto-generation of drop-downs for enum datatypes and foreign keys
- readonly based on editable attribute


1 2 3 4 5 6