Telerik DataSource, пейджинг и фильтрация - PullRequest
0 голосов
/ 28 июня 2011

У меня есть Telerik RadGrid.Исходный источник данных, связанный с сеткой, имеет 145 записей.В сетке, а также в разбивке по страницам включен файл-файтинг, и мой размер страницы равен 20. Когда я фильтрую до 75 записей, коллекция сетки MasterTableView.Items показывает 20 записей.Это соответствует тому, что в сетке отображается.Тем не менее, мне нужно выполнить массовое изменение данных и мне нужно 75 отфильтрованных записей.Есть ли где-нибудь в Grid 75 отфильтрованных записей?Я хочу избежать повторного получения всех 145 записей и последующей фильтрации вручную.

1 Ответ

1 голос
/ 10 июля 2011

Telerik не предоставляет серверный API для доступа к отфильтрованным данным в сетке, но на их форуме есть обходной путь.

Решение состоит в том, чтобы сохранить первичный ключ отфильтрованных строк при загрузке сетки, а затем использовать идентификаторы для получения данных.

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

...