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

目录树根节点名可以返回到主窗口,子节点名就出错,请宗师指点一下。万分感谢

2013-12-10 
目录树根节点名可以返回到主窗口,子节点名就出错,请大师指点一下。万分感谢。我在主窗口点击选择部门按钮,弹

目录树根节点名可以返回到主窗口,子节点名就出错,请大师指点一下。万分感谢。
我在主窗口点击选择部门按钮,弹出窗口显示部门目录树,点击最上一层部门名,部门名会显示到主窗口。但点子目录的部门名,就会出错“属性“ReturnValue”的值为 null、未定义或不是 Function 对象”。
这是根目录树加载代码。
        private void CreateTreeVeiw2()
        {
            ds = SqlComm.GetDataByTableName("IT_WorkOrderProTypeTree");
            dt = new DataTable();
            dt = ds.Tables[0];
            DataView dv = new DataView(dt, "Deep=0", "NodeFullPath", DataViewRowState.CurrentRows);
            //遍历父节点
            foreach (DataRowView d in dv)
            {
                TreeNode n = new TreeNode(d["Text"].ToString(), d["NodeFullPath"].ToString());
                n.NavigateUrl = "javascript:ReturnValue('" + d["Text"].ToString().Trim() + "');";关键是这里返回部门名,这个根部门选择得到。
                n.ImageToolTip = dt.TableName;
                TreeView1.Nodes.Add(n);
                //根据父节点筛选出对应的子节点
                dv = new DataView(dt, "NodeFullPath like '" + d["NodeFullPath"] + "|*' and Deep = '" + ((int)d["Deep"] + 1) + "'", "NodeId", DataViewRowState.CurrentRows);
                if (dv.Count > 0)
                {
                    CreateSubTreeView(n, dv);

                }
            }
        }
这是子目录树加载代码。

        /// <summary>
        /// 添加子项
        /// </summary>
        /// <param name="n"></param>
        /// <param name="dv"></param>
        private void CreateSubTreeView(TreeNode n, DataView dv)
        {
            foreach (DataRowView d in dv)
            {
                TreeNode cn = new TreeNode(d["Text"].ToString(), d["NodeFullPath"].ToString());
                cn.NavigateUrl = "javascript:ReturnValue('" + d["Text"].ToString() + "');"; 关键是这里返回部门名,这个子目录部门就会出错“属性“ReturnValue”的值为 null、未定义或不是 Function 对象”
                cn.Target = "MainFrame";
                n.ChildNodes.Add(cn);
                DataView sdv = new DataView(dt, "NodeFullPath like '" + d["NodeFullPath"] + "|*' and Deep = '" + ((int)d["Deep"] + 1) + "'", "NodeId", DataViewRowState.CurrentRows);
                if (sdv.Count > 0)
                {
                    CreateSubTreeView(cn, sdv);
                }

            }
        }


[解决办法]
  cn.Target = "MainFrame"; 删除不要。

热点排行