Hello, I have a RadTreeView with TreeNodeExpandMode.ServerSide settings.
The treeview is in a RadSplitter. I want to use RadAjaxManager and RadAjaxLoadingPanel, so the treeview do not show postback when the nodes are loaded from server. However, when I use the RadAjaxManager and RadAjaxloadingPanel, the treeview completely dissapear until the new nodes are loaded. No ajax panel shows. Here is the source code for the page:
The treeview is in a RadSplitter. I want to use RadAjaxManager and RadAjaxLoadingPanel, so the treeview do not show postback when the nodes are loaded from server. However, when I use the RadAjaxManager and RadAjaxloadingPanel, the treeview completely dissapear until the new nodes are loaded. No ajax panel shows. Here is the source code for the page:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageTelerikFaraScriptManager.Master" AutoEventWireup="true" CodeBehind="FisiereleMele.aspx.cs" Inherits="TethysTest.Fisiere.FisiereleMele" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"ContinutCentru"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadTreeViewFisiere"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadTreeViewFisiere"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
HorizontalAlign
=
"Center"
></
telerik:RadAjaxLoadingPanel
>
<
table
style
=
"width:100%;"
>
<
tr
>
<
td
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
telerik:RadSplitter
ID
=
"RadSplitterFisiere"
runat
=
"server"
Height
=
"500"
Width
=
"800px"
Skin
=
"Windows7"
>
<
telerik:RadPane
ID
=
"navigationPane"
runat
=
"server"
Width
=
"250"
>
<
telerik:RadTreeView
ID
=
"RadTreeViewFisiere"
Runat
=
"server"
AllowNodeEditing
=
"True"
DataFieldID
=
"nivelID"
DataFieldParentID
=
"parinteID"
DataTextField
=
"nume"
DataValueField
=
"nivelID"
oncontextmenuitemclick
=
"RadTreeViewFisiere_ContextMenuItemClick"
onnodecreated
=
"RadTreeViewFisiere_NodeCreated"
onnodedatabound
=
"RadTreeViewFisiere_NodeDataBound"
onnodeedit
=
"RadTreeViewFisiere_NodeEdit"
onnodeexpand
=
"RadTreeViewFisiere_NodeExpand"
Skin
=
"Outlook"
>
</
telerik:RadTreeView
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitbar1"
runat
=
"server"
CollapseMode
=
"Forward"
></
telerik:RadSplitBar
>
<
telerik:RadPane
ID
=
"contentPane"
runat
=
"server"
Scrolling
=
"none"
>
<
telerik:RadSplitter
ID
=
"RadSplitterContent"
runat
=
"server"
Orientation
=
"Horizontal"
>
<
telerik:RadPane
ID
=
"topPaneContent"
runat
=
"server"
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitbar2"
runat
=
"server"
CollapseMode
=
"Forward"
></
telerik:RadSplitBar
>
<
telerik:RadPane
ID
=
"bottomPaneContent"
runat
=
"server"
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"InfoLabel"
runat
=
"server"
CssClass
=
"fontUserCtrl"
EnableViewState
=
"True"
></
asp:Label
>
</
td
>
</
tr
>
</
table
>
</
asp:Content
>
here is the C# source code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using TethysTestDAL;
using Telerik.Web.UI;
namespace TethysTest.Fisiere
{
public partial class FisiereleMele : TethysTest.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
//se verifica drepturile de securitate ale userului curent pe pagina
Utils.TestRol(this, "CIRC");
InfoLabel.Visible = false;
if (Page.IsPostBack == false)
{
Utils.SetMouseOver(this, "butonLinkOver", "butonLinkOut");
ViewState["currentTreeNode"] = "";
LoadRootNodes(RadTreeViewFisiere, TreeNodeExpandMode.ServerSide);
}
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
//throw ex;
}
}
public override void RefreshData()
{
try
{
ViewState["currentTreeNode"] = "";
RadTreeViewFisiere.UnselectAllNodes();
RadTreeViewFisiere.Nodes.Clear();
LoadRootNodes(RadTreeViewFisiere, TreeNodeExpandMode.ServerSide);
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
}
}
private void IncarcaTreeView()
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
DataSet ds = dal.Arbore_SelectArboreFisiere();
RadTreeViewFisiere.DataSource = ds;
RadTreeViewFisiere.DataBind();
}
private void IncarcaTreeViewRadacina()
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
DataSet ds = dal.Arbore_SelectArboreFisiereRadacina();
RadTreeViewFisiere.DataSource = ds;
RadTreeViewFisiere.DataBind();
}
private static void LoadRootNodes(RadTreeView treeView, TreeNodeExpandMode expandMode)
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
DataSet ds = dal.Arbore_SelectArboreFisiereRadacina();
DataTable data = ds.Tables[0];
foreach (DataRow row in data.Rows)
{
RadTreeNode node = new RadTreeNode();
node.Attributes["radacina"] = row["radacina"].ToString();
node.Text = row["nume"].ToString();
node.Value = row["nivelID"].ToString();
node.ToolTip = row["nume"].ToString();
node.ImageUrl = row["caleImagine"].ToString();
node.ExpandMode = expandMode;
if (node.Attributes["radacina"] == "0")
{
node.AllowEdit = true;
}
else
{
node.AllowEdit = false;
}
treeView.Nodes.Add(node);
}
}
private static DataTable IncarcaTreeViewFrunze(string parinteID)
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
DataSet ds = dal.Arbore_SelectArboreFisiereFrunze(parinteID);
DataTable data = ds.Tables[0];
return data;
}
protected void RadTreeViewFisiere_NodeDataBound(object sender, Telerik.Web.UI.RadTreeNodeEventArgs e)
{
//try
//{
// Persoana pers = (Persoana)Session["persoana"];
// bool supervizor = pers.Supervisor;
// bool powerUser = pers.IsInRole("PWU");
// DataTable data = IncarcaMeniuContextual(e.Node.Value, pers.PersoanaID.ToString(), supervizor, powerUser);
// if (data.Rows.Count > 0)
// {
// e.Node.EnableContextMenu = true;
// RadTreeViewContextMenu target = new RadTreeViewContextMenu();
// foreach (DataRow row in data.Rows)
// {
// RadMenuItem item = new RadMenuItem();
// item.Text = row["textMeniu"].ToString();
// item.Value = row["valueMeniu"].ToString();
// item.ToolTip = row["toolTipMeniu"].ToString();
// item.ImageUrl = row["imageMeniu"].ToString();
// target.Items.Add(item);
// }
// e.Node.ContextMenuID = target.ID;
// RadTreeViewFisiere.ContextMenus.Add(target);
// }
// else
// {
// e.Node.EnableContextMenu = false;
// }
//}
//catch (Exception exx)
//{
// Utils.ShowMessage(this, exx.Message, true, InfoLabel);
// //throw ex;
//}
}
private void UpdateLoadingStatusPosition(TreeViewLoadingStatusPosition statusPosition)
{
RadTreeViewFisiere.LoadingStatusPosition = statusPosition;
}
private static void PopulateNodeOnDemand(RadTreeNode e, TreeNodeExpandMode expandMode)
{
e.Nodes.Clear();
DataTable data = IncarcaTreeViewFrunze(e.Value);
//DataTable data = IncarcaTreeViewFrunze(e.Node.Attributes["nivelID"]);
foreach (DataRow row in data.Rows)
{
RadTreeNode node = new RadTreeNode();
node.Attributes["radacina"] = row["radacina"].ToString();
node.Text = row["nume"].ToString();
node.Value = row["nivelID"].ToString();
node.ToolTip = row["nume"].ToString();
node.ImageUrl = row["caleImagine"].ToString();
if (Convert.ToInt32(row["numarFrunze"]) > 0)
{
node.ExpandMode = expandMode;
}
if (node.Attributes["radacina"] == "0")
{
node.AllowEdit = true;
}
else
{
node.AllowEdit = false;
}
e.Nodes.Add(node);
}
e.Expanded = true;
}
protected void RadTreeViewFisiere_NodeExpand(object sender, RadTreeNodeEventArgs e)
{
try
{
PopulateNodeOnDemand(e.Node, TreeNodeExpandMode.ServerSide);
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
//throw ex;
}
}
private static DataTable IncarcaMeniuContextual(string nivelID, string utilizatorID, bool supervizor, bool powerUser)
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
DataSet ds = dal.MeniuContextual_SelectMeniuContextual(nivelID, utilizatorID, supervizor, powerUser);
DataTable data = ds.Tables[0];
return data;
}
protected void RadTreeViewFisiere_NodeCreated(object sender, RadTreeNodeEventArgs e)
{
try
{
Persoana pers = (Persoana)Session["persoana"];
bool supervizor = pers.Supervisor;
bool powerUser = pers.IsInRole("PWU");
DataTable data = IncarcaMeniuContextual(e.Node.Value, pers.PersoanaID.ToString(), supervizor, powerUser);
if (data.Rows.Count > 0)
{
RadTreeViewContextMenu target = new RadTreeViewContextMenu();
target.Skin = "Default";
string ID = Guid.NewGuid().ToString();
target.ID = ID;
foreach (DataRow row in data.Rows)
{
RadMenuItem item = new RadMenuItem();
item.Text = row["textMeniu"].ToString();
item.Value = row["valueMeniu"].ToString();
item.ToolTip = row["toolTipMeniu"].ToString();
item.ImageUrl = row["imageMeniu"].ToString();
target.Items.Add(item);
}
RadTreeViewFisiere.ContextMenus.Add(target);
e.Node.EnableContextMenu = true;
e.Node.ContextMenuID = target.ID;
}
else
{
e.Node.EnableContextMenu = false;
}
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
//throw ex;
}
}
protected void RadTreeViewFisiere_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
{
try
{
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
Persoana pers = (Persoana)Session["persoana"];
string userHostAddress = this.NumeCalculatorClient();
RadTreeNode clickedNode = e.Node;
ViewState["currentTreeNode"] = clickedNode.Value;
switch (e.MenuItem.Value)
{
case "addFolderDirector":
dal.Arbore_InsertDirector(clickedNode.Value, pers.PersoanaID.ToString(), pers.PersoanaPKID.ToString(), pers.Nume + ", " + pers.Compartiment, userHostAddress);
ViewState["currentTreeNode"] = clickedNode.Value;
clickedNode.Nodes.Clear();
PopulateNodeOnDemand(clickedNode, TreeNodeExpandMode.ServerSide);
break;
}
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
//throw ex;
}
}
protected void RadTreeViewFisiere_NodeEdit(object sender, RadTreeNodeEditEventArgs e)
{
try
{
if (e.Node.Attributes["radacina"] == "1")
{
return;
}
string nume = e.Text;
e.Node.Text = nume;
TethysTestDAL.Fisiere dal = new TethysTestDAL.Fisiere();
Persoana pers = (Persoana)Session["persoana"];
string userHostAddress = this.NumeCalculatorClient();
RadTreeNode clickedNode = e.Node;
dal.Arbore_UpdateDirector(e.Node.Value, pers.PersoanaID.ToString(), pers.PersoanaPKID.ToString(), pers.Nume + ", " + pers.Compartiment, userHostAddress, nume);
ViewState["currentTreeNode"] = clickedNode.Value;
clickedNode.Nodes.Clear();
PopulateNodeOnDemand(clickedNode, TreeNodeExpandMode.ServerSide);
}
catch (Exception exx)
{
Utils.ShowMessage(this, exx.Message, true, InfoLabel);
//throw ex;
}
}
}
}