Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置RadGrid';以编程方式设置页面大小,而不触发PageSizeChanged事件_C#_Asp.net_Webforms_Telerik - Fatal编程技术网

C# 如何设置RadGrid';以编程方式设置页面大小,而不触发PageSizeChanged事件

C# 如何设置RadGrid';以编程方式设置页面大小,而不触发PageSizeChanged事件,c#,asp.net,webforms,telerik,C#,Asp.net,Webforms,Telerik,我正在使用Telerik RadGrid和自定义分页。我的问题是,当我手动设置页面大小时,会触发PageSizeChanged事件,并将代码抛出到无限循环中。作为一个黑客,我创建了一个布尔值,当PageSizeChanged事件被触发时进行设置。如何在不触发PageSizeChanged事件的情况下设置RadGrid控件上的页面大小 private bool PageSizeChanged { get { return Convert.ToBoolean(ViewState["PageS

我正在使用Telerik RadGrid和自定义分页。我的问题是,当我手动设置页面大小时,会触发PageSizeChanged事件,并将代码抛出到无限循环中。作为一个黑客,我创建了一个布尔值,当PageSizeChanged事件被触发时进行设置。如何在不触发PageSizeChanged事件的情况下设置RadGrid控件上的页面大小

private bool PageSizeChanged
{
    get { return Convert.ToBoolean(ViewState["PageSizeChanged"]); }
    set { ViewState["PageSizeChanged"] = value; }
}

protected void RadGrid1_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
    if (!PageSizeChanged)
    {
        PageSizeChanged = true;
        RadGrid1.PageSize = e.NewPageSize;
    }

    PageSizeChanged = false;                        
    RadGrid1.Rebind();
}
更新:我现在有一个我喜欢的解决方案。最后,我从调用列表中删除了事件处理程序,设置了页面大小,然后将事件添加回调用列表

protected void RadGrid1_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
    RadGrid1.PageSizeChanged -= RadGrid1_PageSizeChanged;
    RadGrid1.PageIndex = 0;
    RadGrid1.PageSize = e.NewPageSize;
    RadGrid1.Rebind();
    RadGrid1.PageSizeChanged += RadGrid1_PageSizeChanged;
}

移除RadGrid1_PageSizeChanged,并将页面大小分配为-

RadGrid1.MasterTableView.PageSize = CustomerPageSize;
试试这个-

protected void RadGrid1_PageSizeChanged(object source, GridPageSizeChangedEventArgs e) 
    {                
       RadGrid1.PageSizeChanged-=new GridPageSizeChangedEventHandler(RadGrid1_PageSizeChanged);
       RadGrid1.PageSize =  e.NewPageSize;

      RadGrid1.PageSizeChanged += new GridPageSizeChangedEventHandler(RadGrid1_PageSizeChanged);

      RebindGrid();
    }

谢谢你的建议。这导致了我的更新,现在我有了工作代码。我不明白你为什么要更改RadGrid1_页面大小。通常不需要在PageSizeChanged事件中显式分配PageSize。这就是您遇到无限循环的原因。不过,谢谢您的帮助。