gpt4 book ai didi

c# - 如何在不触发 PageSizeChanged 事件的情况下以编程方式设置 RadGrid 的页面大小

转载 作者:行者123 更新时间:2023-11-30 19:29:56 24 4
gpt4 key购买 nike

我正在使用带有自定义分页的 Telerik RadGrid。我的问题是,当我手动设置页面大小时,PageSizeChanged 事件被触发并将我的代码抛入无限循环。作为 hack,我创建了一个 bool 值,它在触发 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;
}

最佳答案

试试这个-

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();
}

关于c# - 如何在不触发 PageSizeChanged 事件的情况下以编程方式设置 RadGrid 的页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com