江雨兄以及各位TreeView的高手,请教一个问题! 呵呵!我原来做了一个服务器端的闪的厉害!希望有这方面的高手出来讲讲!不过我从来没有见过有这种在Web上面实现的,除非是ActiveX。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to javcs:tree控件很多,我用的也很多,但这次只能用treeview发现treeview用javascript操作太烦了,相应的方法还要到htc里面找,不然只能猜。另外就是大小写方面,明明有时错了也会正确显示,但一会儿又不行,很郁闷。自己搞定了,谢谢cuike519(marshal(修练中...))和Javcs(简单就好)想要代码的话可以给我留言,谢谢你们。 看看这儿http://dev.csdn.net/develop/article/29/29028.shtm 表结构:ID(int),ParentID(int), ConText(varchar(50)), depth(varchar(100)),image(varchar(100)), eimage(varcahr(100)),/////////////// // 递归添加树的节点 public void AddTree(int ParentID,TreeNode pNode) { DataSet ds=(DataSet) this.ViewState["ds"]; DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) { TreeNode Node=new TreeNode() ; if(pNode == null) { //'?添加根节点 TreeView1.Nodes.Add(Node); Node.Expanded = true; } else { //添加当前节点的子节点 pNode.Nodes.Add(Node); Node.Expanded = false; } Node.Text = Row["ConText"].ToString(); AddTree(Int32.Parse(Row["ID"].ToString()), Node);//递归 Node.Target = "main"; Node.NavigateUrl = Row["depth"].ToString(); Node.ImageUrl = Row["image"].ToString() ; Node.ExpandedImageUrl = Row["eimage"].ToString(); } } to yylan(小蓝) 这个只是递归获取数据阿谢谢江雨:我就是看的你以前的帖子才解决的,补充选中父节点:function setParentCheck(node ,Pc){ var parent=node.getParent(); if(parent != null) { if(Pc == true){ parent.setAttribute("checked",Pc); setParentCheck(parent ,Pc); } }} 但现在又遇到以前那个问题,就是CheckBox在服务器端设置的值不能被javascript正确理解,javascript不会调用。这个问题好像是treeview只能在客户端设置初始状态,但在客户端我现在会比较麻烦,不知道有没有在服务器端正确设置的例子,谢谢。 搞定了,没办法,只能在客户端设置的,用了个hidden field作中介,谢谢各位捧场。 asp.net 急急。高手指点,人在等 高手指点 如何用代码访问VSS ******asp.net经典面试题! 各位大哥过来看下。。比较怪的问题。解决了马上结帖`` vs中复制文件出错,请高手赐教,来者有分 出现"操作必须使用一个可更新的查询"的错误信息? 兄弟们一定要帮忙呀!!! girdview 的BoundField DataFormatString在后台怎么设置呢? vs.net的疑问 二级联动怎么控制gridview数据显示? 谁有:datagrid控件完整的例子呀! 怎样用Asp.net的语法弹出新窗口?晕死了.
tree控件很多,我用的也很多,但这次只能用treeview发现treeview用javascript操作太烦了,相应的方法还要到htc里面找,不然只能猜。
另外就是大小写方面,明明有时错了也会正确显示,但一会儿又不行,很郁闷。自己搞定了,谢谢cuike519(marshal(修练中...))和Javcs(简单就好)
想要代码的话可以给我留言,谢谢你们。
http://dev.csdn.net/develop/article/29/29028.shtm
////////////
///
// 递归添加树的节点
public void AddTree(int ParentID,TreeNode pNode)
{
DataSet ds=(DataSet) this.ViewState["ds"];
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode() ;
if(pNode == null)
{ //'?添加根节点
TreeView1.Nodes.Add(Node);
Node.Expanded = true;
}
else
{ //添加当前节点的子节点
pNode.Nodes.Add(Node);
Node.Expanded = false;
} Node.Text = Row["ConText"].ToString();
AddTree(Int32.Parse(Row["ID"].ToString()), Node);//递归
Node.Target = "main";
Node.NavigateUrl = Row["depth"].ToString();
Node.ImageUrl = Row["image"].ToString() ;
Node.ExpandedImageUrl = Row["eimage"].ToString();
}
}
这个只是递归获取数据阿谢谢江雨:
我就是看的你以前的帖子才解决的,补充选中父节点:
function setParentCheck(node ,Pc)
{
var parent=node.getParent();
if(parent != null)
{
if(Pc == true){
parent.setAttribute("checked",Pc);
setParentCheck(parent ,Pc);
}
}
}
这个问题好像是treeview只能在客户端设置初始状态,但在客户端我现在会比较麻烦,不知道有没有在服务器端正确设置的例子,谢谢。