📄 edittreeview.ascx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Collections.Generic;
public partial class UserControls_EditTreeView : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void CreateTreeView(ITreeNode rootNode)
{
AddTopTreeViewNodes(rootNode, TreeView1);
}
private void AddTopTreeViewNodes(ITreeNode tree, TreeView view)
{
IList<ITreeNode> topNodes = tree.GetTopNodes();
foreach (ITreeNode domainNode in topNodes)
{
TreeNode node = new TreeNode(Server.HtmlDecode("<div class='TreeNode' id='" + domainNode.ID + "' >" + domainNode.Name + "</div>"),
domainNode.ID.ToString());
view.Nodes.Add(node);
AddChildrenTreeViewNodes(node, domainNode);
}
}
private void AddChildrenTreeViewNodes(TreeNode parentNode, ITreeNode parentDomainNode)
{
foreach (ITreeNode domainNode in parentDomainNode.Children)
{
TreeNode node = new TreeNode(Server.HtmlDecode("<div class='TreeNode' id='" + domainNode.ID + "' >" + domainNode.Name + "</div>"),
domainNode.ID.ToString());
parentNode.ChildNodes.Add(node);
AddChildrenTreeViewNodes(node, domainNode);
}
}
public event EventHandler SelectedNodeChanged
{
add { TreeView1.SelectedNodeChanged += value; }
remove { TreeView1.SelectedNodeChanged -= value; }
}
public TreeNode SelectedNode
{
get { return TreeView1.SelectedNode; }
}
protected void AddRootNodeButtion_Click(object sender, EventArgs e)
{
long rootId;
AddRootClick(RootTextBox.Text, out rootId);
TreeView1.Nodes.Add(new TreeNode(Server.HtmlDecode("<div class='TreeNode' id=' "+ rootId + "'>" + RootTextBox.Text + "</div>"),
rootId.ToString()));
}
public delegate void AddRootClickHandler(string text, out long rootId);
public AddRootClickHandler AddRootClick;
private static string GetNodeText(string htmlText)
{
Regex regex = new Regex(@"^<div(\W|\w)*>\b");
htmlText = regex.Replace(htmlText, "");
regex = new Regex(@"</div>");
htmlText = regex.Replace(htmlText, "");
return htmlText;
}
protected void New_Click(object sender, EventArgs e)
{
TreeNode parentNode = TreeView1.SelectedNode;
TreeNode newNode = new TreeNode();
newNode.Text = Server.HtmlDecode("</a><input type='text' name='new'/><a href=\"javascript:__doPostBack('"+Insert.UniqueID+"','')\">Insert</a><a>");
newNode.Value = "";
parentNode.ChildNodes.Add(newNode);
}
protected void Insert_Click(object sender, EventArgs e)
{
string parentId = ID.Text;
string childText = Request.Form["new"].ToString();
TreeNode parentNode = TreeView1.SelectedNode;
TreeNode childNode = null;
foreach (TreeNode node in parentNode.ChildNodes)
{
if (node.Value == "")
childNode = node;
}
long newId;
InsertClick(childText, long.Parse(parentId), out newId);
childNode.Value = newId.ToString();
childNode.Text = Server.HtmlDecode("<div class='TreeNode' id='" + newId + "'>" + childText + "</div>");
childNode.ExpandAll();
}
public delegate void InsertClickHandler(string text, long parentId, out long newId);
public event InsertClickHandler InsertClick;
protected void Update_Click(object sender, EventArgs e)
{
string id = ID.Text;
string text = Request.Form["TreeNode" + id].ToString();
TreeNode updateNode = TreeView1.SelectedNode;
updateNode.Text = "<div class='TreeNode' id='" + id + "'>" + text + "</div>";
updateNode.Value = id;
UpdateClick(text, long.Parse(id));
}
public delegate void UpdateClickHandler(string newText, long updateId);
public event UpdateClickHandler UpdateClick;
protected void Edit_Click(object sender, EventArgs e)
{
TreeNode editNode = TreeView1.SelectedNode;
editNode.Text = Server.HtmlDecode("</a><input type='text' value='" + GetNodeText(editNode.Text) + "' name='TreeNode" + ID.Text + "'/><a href=\"javascript:__doPostBack('"+Update.UniqueID+"','')\">Update</a><a>");
}
protected void Delete_Click(object sender, EventArgs e)
{
TreeNode deleteNode = TreeView1.SelectedNode;
if (deleteNode.Parent == null)
TreeView1.Nodes.Remove(deleteNode);
else
deleteNode.Parent.ChildNodes.Remove(deleteNode);
DeleteClick(long.Parse(ID.Text));
}
public delegate void DeleteClickHandler(long deleteId);
public event DeleteClickHandler DeleteClick;
public TextBox RootNodeTextBox
{
get { return RootTextBox; }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -