2

我正在开发一个网站,该网站有一个主页,其中包含多个 RadDocks,用户可以在其中选择他们想要显示的特定控件,并且可以对其进行安排。

在添加/移动/删除(控制树更改)时,我遇到了很多视图状态错误,唯一的解决方案似乎是为一些 Telerik 控件(RadDock、RadDockLayout、RadDockZone 等)创建包装类并应用 [ViewStateModeById] 属性。

[ViewStateModeById]
public class RadDockById : RadDock

有没有人将 RadDock 与 ViewStateModeById 结合使用?是否可能会导致任何麻烦?

4

1 回答 1

2

您遇到的 ViewState 相关问题很可能是由以下两件事引起的:

  1. 动态创建的 RadDock 不会添加到同一个控件中。一旦它们被添加到 RadDockZone 和其他时间到 RadDockLayout。这会导致为某些导致问题的扩展坞加载不正确的 ViewState。
  2. 关闭的停靠栏从页面中处理和移除。这再次更改了页面的控件树,这在加载和保存 ViewState 时是必不可少的。

在解决您的问题时,您有以下选择:

  • 禁用 RadDockLayout 或整个页面的 ViewState。这样您可以添加或删除控件,但如果动态更改属性可能会出现一些问题。
  • 如您所料,创建一个继承自 RadDock 控件的新类并将其标记为使用 ViewStateModeById。在论坛主题中,您可以找到有关此方法的更多信息。
  • 始终创建所有停靠点并将它们添加到 RadDockLayout。封闭的 RadDocks 应始终将其Visible属性设置为false
于 2012-01-16T17:27:23.763 回答