没有看到Telerik的持久性框架的结果



据我所知,根据Telerik的以下指南,我下面的内容应该足以在我的用户控件中保持RadTreeView的状态。但事实并非如此。

在MainPage.aspx中:

<telerik:RadPersistenceManager ID="RadPersistenceManager1" runat="server">
</telerik:RadPersistenceManager>

在用户控件的.aspx中:

​<telerik:RadPersistenceManagerProxy ID="RadPersistenceManagerProxy1" runat="server">
    <PersistenceSettings>
        <telerik:PersistenceSetting ControlID="RadTreeView1" />
    </PersistenceSettings>
</telerik:RadPersistenceManagerProxy>

在用户控件的代码后面:

private RadPersistenceManager _persistenceManager;
protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            _persistenceManager = RadPersistenceManager.GetCurrent(Page);
            if (!IsPostBack)
                _persistenceManager.LoadState();
        }

protected void RadTreeView1_NodeCheck(object sender, RadTreeNodeEventArgs e)
        {           
            _persistenceManager.SaveState();
        }

(我还尝试在主页上调用LoadState()和SaveState()(分别在非回发的page_load和回发的pre_render中)。

但在这两种情况下,控制权的状态都在各州持续存在。

需要做些什么才能让它发挥作用?

我建议您从这个演示开始,并修改它以匹配您的设置:http://demos.telerik.com/aspnet-ajax/treeview/examples/applicationscenarios/persisting-treeview-settings/defaultcs.aspx?product=persistenceframework.

此外,如果您对树视图使用按需加载,这将不起作用。在这种情况下,当您尝试保存/加载项目的状态时,这些项目不会被加载。

最新更新