首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 怎么将TreeView中的ChildNodes添定到他的Node中,而且保留他的功能

2012-01-09 
|M| 如何将TreeView中的ChildNodes添定到他的Node中,而且保留他的功能上面这段代码可以正常绑定----------

|M| 如何将TreeView中的ChildNodes添定到他的Node中,而且保留他的功能
上面这段代码可以正常绑定
--------------
前台  
    前台资料  
      查看  
        明细  
        删除  
        添加  
  后台  
-------------
但这样不是我想要的样式,怎么把他绑定起
--------------
前台  
    前台资料  
      查看(明细   删除   添加)  
后台  
------------
这个样子

当然不是只有text
也要像节点一样,前面有一个checkbox
然后可以勾选
然后在TreeView后面有一个保存按钮
点击保存遍历TreeView的所有checkbox
保存到数据库

--------------------------------
      <asp:TreeView   ID= "tvFuns "   runat= "server "   > </asp:TreeView>
---------------------------------
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!IsPostBack)
                {
                        DataTable   dt   =   new   DataTable();
                        dt.Columns.Add( "ID ",   typeof(Int32));
                        dt.Columns.Add( "Name ",   typeof(String));
                        dt.Columns.Add( "ParentNode ",   typeof(Int32));
                        dt.Columns.Add( "CommandName ",   typeof(Int32));
                        dt.Columns.Add( "IsCommand ",   typeof(Int32));
                        dt.Rows.Add(1,   "前台 ",   0,   1,   0);                        
                        dt.Rows.Add(2,   "前台资料 ",   1,   2,   0);
                        dt.Rows.Add(3,   "查看 ",   2,   3,   0);                        
                        dt.Rows.Add(4,   "明细 ",   3,   4,   1);
                        dt.Rows.Add(5,   "删除 ",   3,   5,   1);
                        dt.Rows.Add(6,   "添加 ",   3,   6,   1);
                        dt.Rows.Add(7,   "后台 ",   0,   7,   0);
                       
                        for   (Int32   i   =   0;   i   <=   dt.Rows.Count   -   1;   i++)
                        {


                                if   (Convert.ToInt32(dt.Rows[i][ "ParentNode "])   ==   0)
                                {
                                        TreeNode   tn   =   new   TreeNode(dt.Rows[i][ "Name "].ToString(),   dt.Rows[i][ "CommandName "].ToString());                                        
                                        tvFuns.Nodes.Add(tn);
                                }
                                else
                                {
                                        FindNodeAll(tvFuns.Nodes,   dt.Rows[i]);
                                }
                        }
                }
        }
        void   FindNodeAll(TreeNodeCollection   nodes,   DataRow   dr)
        {
                foreach   (TreeNode   node   in   nodes)
                {
                        if   (Convert.ToInt32(node.Value)   ==   Convert.ToInt32(dr[ "ParentNode "]))
                        {
                                if   (Convert.ToInt32(dr[ "IsCommand "])   ==   0)
                                {
                                        node.ChildNodes.Add(new   TreeNode(dr[ "Name "].ToString(),   dr[ "CommandName "].ToString()));
                                        return;
                                }
                                else
                                {
                                        node.ChildNodes.Add(new   TreeNode(dr[ "Name "].ToString(),   dr[ "CommandName "].ToString()));


                                        return;
                                }
                        }
                        if   (node.ChildNodes.Count   !=   0)
                        {
                                FindNodeAll(node.ChildNodes,   dr);
                                return;
                        }
                }                
        }
------------------------------------------------------

[解决办法]
帮顶,jf
[解决办法]
前面贴的没有弄成功?

热点排行