我有Telerik RadGrid。绑定到网格的初始DataSource有145条记录。我在网格中打开文件以及分页,我的页面大小为20.当我过滤到75条记录时,网格的MasterTableView.Items集合显示20条记录。这与正在显示的网格中的内容相匹配。但是,我需要对数据执行批量更改并需要75个筛选记录。网格中有哪些地方有75个过滤记录?我想避免再次获取所有145条记录,然后手动过滤。
答案 0 :(得分:1)
Telerik没有提供服务器端API来访问网格中的过滤数据,但是他们的论坛上提供了解决方法。
解决方案是在网格加载时保存过滤后的行主键,然后再使用ID来获取数据。
bool flag = false;
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.FilterCommandName)
{
flag = true;
}
}
protected void RadGrid1_PreRender(object sender, EventArgs e)
{
if (flag)
{
foreach (GridDataItem grdItem in RadGrid1.Items)
{
int iID = Convert.ToInt32(grdItem.GetDataKeyValue("ID").ToString());
. . . .
}
flag = false;
}
}
有关更多信息,请查看telerik网站上的以下链接: http://www.telerik.com/community/forums/aspnet/grid/how-to-get-filter-data.aspx