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