据我所知,通过跟踪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)。
但在这两种情况下,控制的状态都会持续存在。
需要做些什么才能发挥作用?
答案 0 :(得分:0)
我建议您从这个演示开始并修改它以符合您的设置:http://demos.telerik.com/aspnet-ajax/treeview/examples/applicationscenarios/persisting-treeview-settings/defaultcs.aspx?product=persistenceframework。
此外,如果您对树视图使用按需加载,则无法使用。在这种情况下,当您尝试保存/加载其状态时,不会加载项目。