How to reproduce: check the attached video
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.radGridView1.DataSource = this.GetData(1000);
this.radGridView1.AutoExpandGroups = true;
this.radGridView1.EnableFiltering = true;
this.radGridView1.EnablePaging = true;
this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
}
private DataTable GetData(int count)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("Bool", typeof(bool));
for (int i = 0; i < count; i++)
{
dt.Rows.Add(i,"Name " + i, DateTime.Now.AddDays(i), i % 2 == 0 ? true : false);
}
return dt;
}
}
Workaround: cancel the PageChanging event
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.radGridView1.DataSource = this.GetData(1000);
this.radGridView1.AutoExpandGroups = true;
this.radGridView1.EnableFiltering = true;
this.radGridView1.EnablePaging = true;
this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
timer = new Timer();
timer.Interval = 100;
timer.Tick += (sender, e) =>
{
timer.Stop();
this.shouldCancel = false;
};
this.radGridView1.PageChanging += RadGridView1_PageChanging;
this.radGridView1.CurrentRowChanged += RadGridView1_CurrentRowChanged;
}
private void RadGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e)
{
this.shouldCancel = this.ShouldCancelPageChange(e.CurrentRow);
timer.Start();
}
Timer timer;
bool shouldCancel = false;
private bool ShouldCancelPageChange(GridViewRowInfo rowInfo)
{
if (this.radGridView1.TableElement.MasterTemplate != null && this.radGridView1.TableElement.MasterTemplate.EnablePaging)
{
int pageIndex = this.radGridView1.TableElement.ViewTemplate.DataView.GetItemPage(rowInfo);
if (pageIndex == this.radGridView1.TableElement.MasterTemplate.PageIndex)
{
return true;
}
}
return false;
}
private void RadGridView1_PageChanging(object sender, Telerik.WinControls.PageChangingEventArgs e)
{
e.Cancel = this.shouldCancel;
}
private DataTable GetData(int count)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("Bool", typeof(bool));
for (int i = 0; i < count; i++)
{
dt.Rows.Add(i,"Name " + i, DateTime.Now.AddDays(i), i % 2 == 0 ? true : false);
}
return dt;
}
}