【问题标题】:Detect change in RadGrid item expand/collapse state检测 RadGrid 项目展开/折叠状态的变化
【发布时间】:2011-03-28 20:41:52
【问题描述】:

我有一个显示层次结构的 RadGrid。我想保存网格中每个项目的展开/折叠状态,以便当用户返回站点时,一切看起来都与他们离开时完全一样。我有代码来保存和恢复展开/折叠项目的状态,但是,我现在需要一种方法来检测当用户单击展开/折叠图标时哪个项目当前正在展开/折叠。我知道有一个命令事件,但是没有命令参数,也没有任何迹象表明正在更改哪个项目的状态。有什么想法吗?

【问题讨论】:

    标签: c# radgrid


    【解决方案1】:

    我发现传递给 RadGrid.ItemCommand 事件的 GridCommandEventArgs 包含一个“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? :)
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用持久性框架。 在我的帖子中: http://www.telerik.com/community/forums/wpf/persistence-framework/presistenceframework-not-save-groups.aspx#2248287 有示例如何做到这一点。

      【讨论】:

      • 虽然这个答案很旧,理论上这可能会回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供参考链接。
      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      相关资源
      最近更新 更多