Please check this example...
Then RadPane with ID = "catalogsPane" has EnableViewState is false, when on postback (expand tree node) all nodes will be removed, event OnNodeExpand will not be fired.
full source code:
Then RadPane with ID = "catalogsPane" has EnableViewState is false, when on postback (expand tree node) all nodes will be removed, event OnNodeExpand will not be fired.
full source code:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebDesigner.WebForm3" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"AjaxManager"
runat
=
"server"
DefaultLoadingPanelID
=
"AjaxLoadingPanel"
EnableViewState
=
"false"
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"AjaxLoadingPanel"
Skin
=
"Windows7"
EnableViewState
=
"false"
runat
=
"server"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadSplitter
ID
=
"viewSplitter"
BorderStyle
=
"None"
PanesBorderSize
=
"0"
runat
=
"server"
Skin
=
"Windows7"
>
<
telerik:RadPane
runat
=
"Server"
ID
=
"catalogsPane"
Width
=
"240px"
MinWidth
=
"100"
EnableViewState
=
"false"
>
<
telerik:RadTabStrip
ID
=
"RadTabStrip1"
runat
=
"server"
SelectedIndex
=
"1"
MultiPageID
=
"RadMultiPage1"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Tree"
Selected
=
"True"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"RadMultiPage1"
runat
=
"server"
>
<
telerik:RadPageView
ID
=
"RadPageView1"
Selected
=
"true"
runat
=
"server"
>
<
div
runat
=
"server"
id
=
"container"
>
<
div
>tree:</
div
>
<
telerik:RadTreeView
runat
=
"server"
ID
=
"treeControl2"
OnNodeExpand
=
"CatalogTree_ExpandNode"
OnLoad
=
"CatalogTree_Load"
NodeClick
=
"CatalogTree_NodeClick"
>
</
telerik:RadTreeView
>
</
div
>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
<
div
runat
=
"server"
id
=
"Div1"
>
</
div
>
</
form
>
</
body
>
</
html
>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Web.UI;
using Telerik.Web.UI;
namespace WebDesigner
{
public partial class WebForm3 : Page
{
private readonly List<
SiteDataItem
> _siteData = new List<
SiteDataItem
>();
protected override void OnInit(EventArgs e)
{
InitSiteData();
container.Controls.Add(treeControl2);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AjaxManager.AjaxSettings.AddAjaxSetting(treeControl2, treeControl2, AjaxLoadingPanel);
}
private static RadTreeNode CreateTreeNode(SiteDataItem item)
{
return new RadTreeNode
{
Text = item.Text,
Value = item.ID.ToString(CultureInfo.InvariantCulture),
ExpandMode = TreeNodeExpandMode.ServerSide
};
}
private void LoadNodes(IRadTreeNodeContainer treeControl, IRadTreeNodeContainer root, int? parentIdent)
{
var controlNodes = root == null ? treeControl.Nodes : root.Nodes;
foreach (var item in this._siteData)
{
if (parentIdent == item.ParentID)
{
var nodeControl = CreateTreeNode(item);
controlNodes.Add(nodeControl);
}
}
}
protected void CatalogTree_NodeClick(object sender, RadTreeNodeEventArgs e)
{
throw new NotImplementedException();
}
protected void CatalogTree_Load(object sender, EventArgs e)
{
// make root nodes
if (!Page.IsPostBack)
{
var treeControl = sender as RadTreeView;
if (treeControl != null)
{
LoadNodes(treeControl, null, null);
}
}
}
protected void CatalogTree_ExpandNode(object sender, RadTreeNodeEventArgs e)
{
if (e.Node.Nodes.Count == 0)
{
LoadNodes(sender as IRadTreeNodeContainer, e.Node, Int32.Parse(e.Node.Value));
}
}
private void InitSiteData()
{
this._siteData.Add(new SiteDataItem(1, null, "Products"));
this._siteData.Add(new SiteDataItem(2, 1, "RadControls for ASP.NET Ajax"));
this._siteData.Add(new SiteDataItem(3, 1, "RadControls for Silverlight"));
this._siteData.Add(new SiteDataItem(4, 2, "RadGrid"));
this._siteData.Add(new SiteDataItem(5, 2, "RadScheduler"));
this._siteData.Add(new SiteDataItem(6, 2, "RadEditor"));
this._siteData.Add(new SiteDataItem(7, 3, "RadGrid"));
this._siteData.Add(new SiteDataItem(8, 3, "RadMenu"));
this._siteData.Add(new SiteDataItem(9, 3, "RadEditor"));
}
}
#region Support
internal class SiteDataItem
{
private string _text;
private int _id;
private int? _parentId;
public string Text
{
get { return _text; }
set { _text = value; }
}
public int ID
{
get { return _id; }
set { _id = value; }
}
public int? ParentID
{
get { return _parentId; }
set { _parentId = value; }
}
public SiteDataItem(int id, int? parentId, string text)
{
_id = id;
_parentId = parentId;
_text = text;
}
}
#endregion
}