【发布时间】:2012-08-21 12:57:46
【问题描述】:
我正在使用 DevExpress 网格,有一些方法可以保存布局,但我还有一个问题: 是否可以更新已保存的布局,而不覆盖它,而只更新,例如,已更改的列?
【问题讨论】:
-
winforms 或 webForms ???参考this
标签: c# winforms devexpress xtragrid
我正在使用 DevExpress 网格,有一些方法可以保存布局,但我还有一个问题: 是否可以更新已保存的布局,而不覆盖它,而只更新,例如,已更改的列?
【问题讨论】:
标签: c# winforms devexpress xtragrid
我不明白更新已保存布局的目的是什么。
但是当你在更改列后调用 savelayout 时,它会将当前布局相关信息(列显示状态、列视图顺序、排序信息等)完全写入注册表/流/XML,并且不可能仅更新现有布局信息。
如果您之前从已保存的文件中应用了布局,则覆盖相同的文件(带有布局信息)将等同于您的要求 - 更新保存的布局。
【讨论】:
我可以建议您创建此布局文件的副本吗? 这样您就可以更新副本并保留原件。
【讨论】:
这个问题是很久以前提出的,但是有可能升级 DevExpress 中现有的布局文件。您必须处理两个事件: LayoutUpgrade 和 BeforeLoadLayout。在开始时,您必须使用属性 OptionsLayout.LayoutVersion 为您的布局提供一个版本号。当您更改布局时,隐藏一些列,添加新列,添加新过滤器......更改 LayoutVersion 编号。当您的应用程序启动时,DevExpress 将现有的 LayoutVersion 编号与新的编号进行比较,如果存在差异,则触发 LayoutUpgrade 事件。
DevExpress 在此处描述此行为: Ugrading Layout
我希望这会有所帮助。
【讨论】: