⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultcs.aspx.cs

📁 Telerik是很大的第三方软件制造商
💻 CS
字号:
using System;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.IO;
using Telerik.QuickStart;
using Telerik.WebControls;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Telerik.CallbackIntegarationExamplesCSharp.TreeView
{
	/// <summary>
	/// Summary description for _Default.
	/// </summary>
	public class DefaultCS: XhtmlPage
	{		
		protected Telerik.WebControls.RadCallback RadCallback1;
		protected Telerik.WebControls.RadTreeView tree2;
		protected Telerik.WebControls.RadTreeView tree1;
		protected Telerik.WebControls.RadCallback RadCallback2;
		protected System.Web.UI.WebControls.TextBox tbNodeText;
		protected Telerik.WebControls.CallbackButton btnRename;
		protected Telerik.WebControls.CallbackButton btnAddChild;
		protected Telerik.WebControls.CallbackButton btnAddRoot;
		protected System.Web.UI.WebControls.TextBox tbNewNodeText;
		protected Telerik.WebControls.CallbackButton btnToggleExpand;
		protected Telerik.WebControls.CallbackDropDownList ddlSkin;
		protected Telerik.WebControls.CallbackListBox lbSourceTree2;
		protected Telerik.WebControls.CallbackListBox lbSourceTree1;
		protected Telerik.WebControls.CallbackButton btnRemove;
	
		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{    
			this.btnAddChild.Click += new System.EventHandler(this.btnAddChild_Click);
			this.lbSourceTree2.SelectedIndexChanged += new System.EventHandler(this.lbSourceTree2_SelectedIndexChanged);
			this.lbSourceTree1.SelectedIndexChanged += new System.EventHandler(this.lbSource_SelectedIndexChanged);
			this.RadCallback2.Callback += new Telerik.WebControls.RadCallback.CallbackEvent(this.RadCallback2_Callback);
			this.btnToggleExpand.Click += new System.EventHandler(this.btnToggleExpand_Click);
			this.btnRename.Click += new System.EventHandler(this.btnRename_Click);
			this.btnAddRoot.Click += new System.EventHandler(this.btnAddRoot_Click);
			this.RadCallback1.Callback += new Telerik.WebControls.RadCallback.CallbackEvent(this.RadCallback1_Callback);
			this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		protected void Page_Load(object sender, System.EventArgs e)
		{
			if (!Page.IsPostBack)
			{
				LoadTree1();
				LoadTree2();
				tree1.ExpandAllNodes();
				tree2.ExpandAllNodes();
			}
		}

		private bool CheckTextBox(CallbackButton button, TextBox textBox)
		{
			if (textBox.Text.Length == 0)
			{
				button.Alert("Text for the node is required!");
				textBox.BackColor = Color.Yellow;
				return false;
			}
			else
			{
				textBox.BackColor = Color.White;
				return true;
			}
		}

		private void btnAddChild_Click(object sender, System.EventArgs e)
		{
			if (tree1.SelectedNode == null)
			{
				btnAddChild.Alert("Please, select an item!");
			}
			else
			{
				if (CheckTextBox(btnAddChild, tbNewNodeText))
				{					
					tree1.SelectedNode.AddNode(new RadTreeNode(tbNewNodeText.Text));					
					tree1.SelectedNode.ExpandChildNodes();
					tbNewNodeText.Text = string.Empty;
				}
				
			}
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tbNewNodeText);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree1);
		}

		private void btnRemove_Click(object sender, System.EventArgs e)
		{
			if (tree2.SelectedNode != null && !tree2.SelectedNode.Equals(tree2.Nodes[0]))
			{
				tree2.SelectedNode.Remove();
				tbNodeText.Text = string.Empty;
			}
			else
			{
				if (tree2.SelectedNode == null)
				{
					btnRemove.Alert("Please, select an item!");
				}
				else
				{
					btnRemove.Alert("Root element cannot be removed!");
				}
			}
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree2);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tbNodeText);
		}		

		private void AddChilds(RadTreeNode dstNode, RadTreeNode srcNode)
		{
		
			foreach (RadTreeNode srcChildNode in srcNode.Nodes)
			{
				RadTreeNode destChildNode = new RadTreeNode(srcChildNode.Text, srcChildNode.Value);
				dstNode.AddNode(destChildNode);
				AddChilds(destChildNode, srcChildNode);
			}
		}

		private void RadCallback1_Callback(object sender, Telerik.WebControls.CallbackEventArgs args)
		{
			string[] treeIds = args.CallbackEvent.Split(',');

			RadTreeView srcTree = null;
			RadTreeView dstTree = null;
			
			if (tree1.ClientID.Equals(treeIds[0]))
			{
				srcTree = tree1;
			}
			else if (tree2.ClientID.Equals(treeIds[0]))
			{
				srcTree = tree2;
			}

			if (tree1.ClientID.Equals(treeIds[1]))
			{
				dstTree = tree1;
			}
			else if (tree2.ClientID.Equals(treeIds[1]))
			{
				dstTree = tree2;
			}

			string[] nodeIds = args.Args.Split(',');
			RadTreeNode sourceNode = null;
			RadTreeNode destNode = null;
			
			sourceNode = srcTree.FindNodeByText(nodeIds[0]);
			destNode = dstTree.FindNodeByText(nodeIds[1]);												
			
			if (sourceNode.Parent == null)
			{
				((Telerik.WebControls.RadCallback)sender).Alert("Cannot move the root node");
				return;
			}
			RadTreeNode tempNode = destNode;
			while (tempNode != null && !tempNode.Equals(sourceNode))
			{
				tempNode = tempNode.Parent;
			}
			if (tempNode != null)
			{
				((Telerik.WebControls.RadCallback)sender).Alert("Cannot move a node to its child");
				return;
			}
			RadTreeNode newNode = new RadTreeNode(sourceNode.Text, sourceNode.Value);							
			AddChilds(newNode, sourceNode);
			destNode.AddNode(newNode);
			destNode.ExpandChildNodes();				
			if ( !sourceNode.Equals(srcTree.Nodes[0]) )
			{
				sourceNode.Remove();					
			}			
			((Telerik.WebControls.RadCallback)sender).ControlsToUpdate.Add(tree1);
			((Telerik.WebControls.RadCallback)sender).ControlsToUpdate.Add(tree2);
		}

		private void RadCallback2_Callback(object sender, Telerik.WebControls.CallbackEventArgs args)
		{
			tree2.ClearSelectedNodes();
			RadTreeNode node = tree2.FindNodeByText(args.Args);
			node.Selected = true;
			tbNodeText.Text = args.Args;
			((Telerik.WebControls.RadCallback)sender).ControlsToUpdate.Add(tbNodeText);
			((Telerik.WebControls.RadCallback)sender).ControlsToUpdate.Add(tree2);
		}

		private void btnRename_Click(object sender, System.EventArgs e)
		{
			if (CheckTextBox(btnRename, tbNodeText))
			{
				if (tree2.SelectedNode != null)
				{
					tree2.SelectedNode.Text = tbNodeText.Text;
					tbNodeText.Text = string.Empty;
				}
			}
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree2);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tbNodeText);
		}

		private void btnAddRoot_Click(object sender, System.EventArgs e)
		{
			if (CheckTextBox(btnAddRoot, tbNewNodeText))
			{
				tree1.Nodes.Add(new RadTreeNode(tbNewNodeText.Text));
				tbNewNodeText.Text = string.Empty;
			}
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree1);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tbNewNodeText);

		}
		
		private void btnToggleExpand_Click(object sender, System.EventArgs e)
		{
			if (btnToggleExpand.Text.Equals("Collapse All Nodes"))
			{				
				btnToggleExpand.Text = "Expand All Nodes";
				tree1.CollapseAllNodes();
				tree2.CollapseAllNodes();
			}	
			else
			{
				btnToggleExpand.Text = "Collapse All Nodes";
				tree1.ExpandAllNodes();
				tree2.ExpandAllNodes();				
			}
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree1);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(tree2);
			((Telerik.WebControls.CallbackButton)sender).ControlsToUpdate.Add(btnToggleExpand);
		}

		protected void ddlSkin_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			if (ddlSkin.SelectedIndex == 0)
			{
				tree1.Skin = "MSDN/Blue";					
				tree2.Skin = "MSDN/Blue";					
			}
			else if (ddlSkin.SelectedIndex == 1)
			{
				tree1.Skin = "MSDN/Classic";
				tree2.Skin = "MSDN/Classic";
			}
			else
			{
				tree1.Skin = "Round/3DBlue";
				tree2.Skin = "Round/3DBlue";
			}
			((Telerik.WebControls.CallbackDropDownList)sender).ControlsToUpdate.Add(tree1);
			((Telerik.WebControls.CallbackDropDownList)sender).ControlsToUpdate.Add(tree2);
		}

		private void GenerateTreeView(RadTreeView tree)
		{
			tree.Nodes.Clear();
			RadTreeNode currentTime = new RadTreeNode("Current Time");
			tree.AddNode(currentTime);

			RadTreeNode currentHour = new RadTreeNode("Hour : " + System.DateTime.Now.Hour.ToString());
			currentTime.AddNode(currentHour);
			RadTreeNode currentMin = new RadTreeNode("Minute : " + System.DateTime.Now.Minute.ToString());
			currentTime.AddNode(currentMin);
			RadTreeNode currentSec = new RadTreeNode("Second : " + System.DateTime.Now.Second.ToString());            
			currentTime.AddNode(currentSec);

			RadTreeNode currentDate = new RadTreeNode("Current Date");
			tree.AddNode(currentDate);

			RadTreeNode currentYear = new RadTreeNode("Year : " + System.DateTime.Now.Year.ToString());
			currentDate.AddNode(currentYear);
			RadTreeNode currentMonth = new RadTreeNode("Month : " + System.DateTime.Now.Month.ToString());
			currentDate.AddNode(currentMonth);
			RadTreeNode currentDay = new RadTreeNode("Day: " + System.DateTime.Now.Day.ToString());
			currentDate.AddNode(currentDay);            
		}   
 
		private void LoadTreeView2(RadTreeView tree)
		{
			tree.Nodes.Clear();
			OleDbConnection dbCon = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Tree.mdb"));
			dbCon.Open();

			OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Links", dbCon);
			DataSet ds = new DataSet();
			adapter.Fill(ds);

			tree.DataFieldID = "id";
			tree.DataFieldParentID = "parentId";

			tree.DataSource = ds;
			tree.DataMember = "Links";
            tree.DataTextField = "Text";
			tree.DataBind();         
		}

		private void LoadTree1()
		{
			if (lbSourceTree1.SelectedIndex == 0)
			{
				GenerateTreeView(tree1);
			}
			else if (lbSourceTree1.SelectedIndex == 1)
			{
				LoadTreeView2(tree1);
			}
			else
			{
				tree1.LoadContentFile("tree.xml");
			}
			tree1.ExpandAllNodes();
		}

		private void LoadTree2()
		{
			if (lbSourceTree2.SelectedIndex ==0)
			{
				GenerateTreeView(tree2);
			}
			else if (lbSourceTree2.SelectedIndex ==1)
			{
				LoadTreeView2(tree2);
			}
			else
			{
				tree2.LoadContentFile("tree.xml");
			}
			tree2.ExpandAllNodes();
		}

		private void lbSource_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			LoadTree1();
			((Telerik.WebControls.CallbackListBox)sender).ControlsToUpdate.Add(tree1);
		}

		private void lbSourceTree2_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			LoadTree2();
			((Telerik.WebControls.CallbackListBox)sender).ControlsToUpdate.Add(tree2);
		}	
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -