Skip to content

The Dummy Programmer

Stories of daily programming

  • Home
  • My other dummy projects
  • Games
    • Space Y: An Asteroids clone
  • Services
    • What’s my user agent
    • What’s my IP address
  • About
  • Toggle search form

Telerik RadGrid’s pagination hangs

Posted on July 31, 2021July 31, 2021 By

Today I want to talk you about a problem I faced in these last days working on a ASP.NET web form project. In this project I used the library “UI for ASP.NET AJAX” from Telerik, and in particular the problem occurred using the RadGrid control.

What was the problem? In a nutshell, without an explanation, the pagination of the RadGrid control stopped working, with the control stuck on page 2. After trying several changes to the source code, I realized that the problem was in a function whose purpose was get the reference to a control in an ASP.NET page or control in a recursive way (a kind of recursive FindControl).

The “offending” function was taken on the Internet and looks like the following:

public static Control FindControlRecursive(Control container, string name)
{
    if ((container.ID != null) && (container.ID.Equals(name)))
        return container;

    foreach (Control ctrl in container.Controls)
    {
        Control foundCtrl = FindControlRecursive(ctrl, name);
        if (foundCtrl != null)
            return foundCtrl;
    }
    return null;
}

There is nothing wrong in the function above, and you can find many similar on the Internet which do same task. Moreover the function is not modifying anything, it just recursively reads the control collection of each control, and looks for the control ID passed as a parameter.

What’s the solution?

As already said there was no explanation to this phenomenon, and so the only solution I found is in fact a workaround, which consists in modifying the function as follow:



public static Control FindControlRecursive(Control container, string name)
{
    if ((container.ID != null) && (container.ID.Equals(name)))
        return container;

    foreach (Control ctrl in container.Controls)
    {
        if (ctrl is RadGrid)
            continue;

        Control foundCtrl = FindControlRecursive(ctrl, name);
        if (foundCtrl != null)
            return foundCtrl;
    }
    return null;
}

For some reason the RadGrid object doesn’t like that you read its control collection, so adding the two lines of code in bold did the trick.

It’s a very simple workaround, but I assure you that I spent a lot of time to find it, and I’m very happy to share this solution with you.

Hope this helps 😉

ASP.NET, C#

Post navigation

Previous Post: Could not load file or assembly ‘DocumentFormat.OpenXml, Version=2.7.2.0
Next Post: C# async / await behind the scenes

Related Posts

Working with C# async / await keywords (part 3 of 3) C#
Put an ASP.NET website under maintenance ASP.NET
Failed to decode downloaded font: (your web application address) ASP.NET
Configure access permission to a folder for an IIS Application pool ASP.NET
C# async / await behind the scenes C#
Working with C# async / await keywords (part 1 of 3) C#

Search

Related posts

  • Telerik RadGrid rendering problems with IE11 in…

Categories

  • .NET 6 (1)
  • .NET 7 (1)
  • AJAX (1)
  • Android (2)
  • Apache (4)
  • ASP.NET (9)
  • ASP.NET MVC (3)
  • Avalonia UI (1)
  • BCP (1)
  • Bitlocker (2)
  • C# (14)
  • CentOS (4)
  • ClosedXML (1)
  • CLR (1)
  • DNS (1)
  • Encryption (3)
  • Excel (2)
  • FuelPHP (3)
  • Games (2)
  • Google Chrome (1)
  • GSuite (1)
  • HTML (1)
  • Imagick (2)
  • Javascript (1)
  • Kindle (1)
  • LAMP (3)
  • Linux (7)
  • MariaDB (2)
  • Mathematics (2)
  • MySql (4)
  • NPOI (1)
  • Office 365 (1)
  • Perl (1)
  • PHP (6)
  • Programming (1)
  • Remote desktop (1)
  • SFTP (2)
  • Sockets (3)
  • Sql Server (20)
  • Sql Server 2016 (14)
  • Sql Server 2019 (1)
  • SSL (4)
  • Task scheduler (1)
  • Telerik ASP.NET AJAX (2)
  • The Dummy Programmer Chat (2)
  • Threading (5)
  • Tools (1)
  • TPL (3)
  • TypeScript (3)
  • Ubuntu (4)
  • Virtualization software (3)
  • Visual Studio (1)
  • Visual Studio Code (2)
  • VueJS (1)
  • Web fonts (1)
  • Web programming (6)
  • Windows (12)
  • Windows 10 (15)
  • Windows Forms (1)
  • Windows Server (6)

Copyright © 2024 The Dummy Programmer | Privacy Policy | Terms of use |

Powered by PressBook Masonry Dark

Manage Cookie Consent
This site doesn’t collect user personal data and doesn’t install profiling or analytical cookies, either its own or from third parties. Read our privacy policy for more info.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}