Обнаружение изменений в состоянии разворачивания / свертывания элемента RadGrid - PullRequest
1 голос
/ 29 марта 2011

У меня есть RadGrid, отображающий иерархическую структуру. Я хочу сохранить состояние раскрытия / свертывания каждого элемента в сетке, чтобы при возвращении пользователя на сайт все выглядело именно так, как он его покинул. У меня есть код для сохранения и восстановления состояния развернутых / свернутых элементов, однако теперь мне нужен способ определить, какой элемент в настоящее время разворачивается / сворачивается, когда пользователь нажимает значок развертывания / свертывания. Я знаю, что есть командное событие, но нет командного аргумента, и, похоже, нет никаких указаний на то, какое состояние элемента изменяется. Есть идеи?

Ответы [ 2 ]

4 голосов
/ 28 апреля 2011

Я обнаружил, что GridCommandEventArgs, переданный в событие RadGrid.ItemCommand, содержит свойство «Item», которое представляет развернутый / свернутый элемент. При приведении к GridDataItem можно извлечь ключ данных и выполнить любые необходимые манипуляции.

protected void RadGrid_OnItemCommand(object sender, GridCommandEventArgs e)
{
    try
    {
        if(e.CommandName.Equals("ExpandCollapse"))
        {
            string id = ((GridDataItem)e.Item).GetDataKeyValue("ID").ToString();
            // ... do work on id (i.e. save state, etc.) ...
        }
    } catch(Exception ex)
    {
        // What could possibly go wrong? :)
    }
}
0 голосов
/ 19 сентября 2012

Используйте Persistance Framework.В моем посте здесь: http://www.telerik.com/community/forums/wpf/persistence-framework/presistenceframework-not-save-groups.aspx#2248287 есть пример, как это сделать.

...