CSDN一样,多级的可以删除和添加的动态树

zheteng_001 2011-07-15 07:37:32
CSDN一样,多级的可以删除和添加的动态树。删除和添加,改变数据库中的值。请问这样的树怎么做,有没有这样的Demo或是实例???
...全文
389 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-07-17
  • 打赏
  • 举报
回复
删除和添加,改变数据库中的值

简单的treeview 增删改查。可以满足不?


zheteng_001 2011-07-17
  • 打赏
  • 举报
回复
一会试试
sswp7 2011-07-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wxr0323 的回复:]
思路

加载的

C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class TreeView……
[/Quote]

就是啊,++++++
子夜__ 2011-07-17
  • 打赏
  • 举报
回复
思路

加载的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class TreeView : System.Web.UI.Page
{
public List<ModelTree> TreeList = null;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["TreeData"] == null)
{
TreeList = new List<ModelTree>(){
new ModelTree(){TId="0001",TName="董事会",IsParent=1 },
new ModelTree(){TId="0002",TName="监事会",IsParent=1 },
new ModelTree(){TId="0003",TName="工会",IsParent=1 },
new ModelTree(){TId="000101",TName="生产科",IsParent=0 },
new ModelTree(){TId="000102",TName="地质科",IsParent=0 },
new ModelTree(){TId="000201",TName="测量科",IsParent=0 },
new ModelTree(){TId="000301",TName="工会干事科",IsParent=0 }
};
Session["TreeData"] = TreeList;
}
else
{
TreeList = Session["TreeData"] as List<ModelTree>;
}
this.Tv1.Nodes.Clear();
this.Tv1.Nodes.Add(new TreeNode() { Text = "总部门" });
InitTree(TreeList, "000", this.Tv1.Nodes[0]);

}
int count = 0;
public void InitTree(List<ModelTree> list, string ParentId, TreeNode Ptn)
{
List<ModelTree> lmt = new List<ModelTree>();
lmt = list.Where(N => N.TId.ToString().Contains(ParentId.ToString()) && N.TId != ParentId).ToList();
if (count == 0)
{
lmt = lmt.Where(I => I.IsParent == 1).ToList();
}
if (lmt.Count > 0)
{
count++;
foreach (ModelTree mt in lmt)
{
TreeNode Tn = new TreeNode();
Tn.Text = mt.TName + "    <a href='NodeAdd.aspx?Type=add&TID=" + mt.TId.ToString() + "\'><font color='red'>添加节点</font></a>"
+ "    <a href='NodeAdd.aspx?Type=upd&TID=" + mt.TId.ToString() + "\'><font color='black'>更新节点</font></a>";
Tn.Value = mt.TId.ToString();
Ptn.ChildNodes.Add(Tn);
InitTree(list, mt.TId.ToString(), Tn);
}
}
}
}



操作的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;



public partial class NodeAdd : System.Web.UI.Page
{
string type = string.Empty;
string TID = string.Empty;
List<ModelTree> lt = new List<ModelTree>();
protected void Page_Load(object sender, EventArgs e)
{
lt = Session["TreeData"] as List<ModelTree>;
try
{
type = Request.QueryString["type"].ToString();
TID = Request.QueryString["TID"].ToString();
}
catch (NullReferenceException err)
{
throw err;
}
if (type.ToString() == "upd")
{
this.Txt_TID.ReadOnly = true;
this.Btn_Cmd.Text = "Update";
Btn_Cmd.Click += new EventHandler(Btn_UPD_Click);
}
else
{
this.Txt_TID.ReadOnly = true;
this.Btn_Cmd.Text = "Insert";
Btn_Cmd.Click += new EventHandler(Btn_ADD_Click);
this.Txt_TID.Text = (Convert.ToInt32(lt.FindAll(N => N.TId.Contains(TID)).Max(I => I.TId)) + 1).ToString().PadLeft(TID.Length + 2, '0');

}

}
protected void Btn_UPD_Click(object sender, EventArgs e)
{
//Update
//取list.find 然后用值替换
Session["TreeData"] = lt;
Response.Redirect("TreeView.aspx");
}
protected void Btn_ADD_Click(object sender, EventArgs e)
{
//insert
//list.add方法
Session["TreeData"] = lt;
Response.Redirect("TreeView.aspx");

}
}



实体的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///ModelTree 的摘要说明
/// </summary>
[Serializable]
public class ModelTree
{
public ModelTree()
{ }

private string _TId;

public string TId
{
get { return _TId; }
set { _TId = value; }
}
private string _TName;

public string TName
{
get { return _TName; }
set { _TName = value; }
}
private int _IsParent;

public int IsParent
{
get { return _IsParent; }
set { _IsParent = value; }
}
}


就这个思路。自己看着弄算了。
添加那块 我没去判断IsParent.

所以加载出有些问题
wylp_19 2011-07-15
  • 打赏
  • 举报
回复
把csdn的树的js代码下来改改
xuexiaodong2009 2011-07-15
  • 打赏
  • 举报
回复
不错,学习了
这些都是前台的,后台也需要处理的
subxli 2011-07-15
  • 打赏
  • 举报
回复
这是个好东西。
沐NeMo 2011-07-15
  • 打赏
  • 举报
回复
CSDN导航树是见:CSDN网友“meizz”提供的MzTreeView1.0。
MzTreeView1.0 可以在
http://www.meizz.com/Web/Article.asp?id=436
获得。

http://www.meizz.com
  • 打赏
  • 举报
回复
这个问题在CSDN中没少被提到,建议LZ去找找资料。

ls给链接。
isjoe 2011-07-15
  • 打赏
  • 举报
回复
.Net TreeView Web控件支持动态
Tosp2012 2011-07-15
  • 打赏
  • 举报
回复
這個是對節點的刪除和添加的問題。
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wylp_19 的回复:]

把csdn的树的js代码下来改改
[/Quote]

++
sswp7 2011-07-15
  • 打赏
  • 举报
回复
梅花雪性树。。。

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧