日期:2014-05-17  浏览次数:20394 次

目录树根节点名可以返回到主窗口,子节点名就出错,请大师指点一下。万分感谢。
我在主窗口点击选择部门按钮,弹出窗口显示部门目录树,点击最上一层部门名,部门名会显示到主窗口。但点子目录的部门名,就会出错“属性“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)
            {
               &