/// <summary> /// 删除分类节点。遍历分类节点下的子节点,如果是文件节点,调用删除文件节点的方法进行删除,如果是分类节点,递归调用 /// </summary> /// <param name="node">要删除的节点</param> public static void RemoveCategoryNode(this RadTreeNode node) { //所属批次是从本地添加,不是来自服务器,可以直接删除分类节点 if ((node.GetBatchNode().Tag as NBatchInfo).Operation == EOperType.eADD) { node.Remove(); } else //所属批次来自服务器,删除从本地添加的文件节点,其他文件节点设置删除标示 { node.Visible = false; List <RadTreeNode> toDelNodes = GetFileNodesWithAddOperation(node); foreach (RadTreeNode toDelNode in toDelNodes) { toDelNode.Remove(); } } }
private void Menucategoryadd_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog { InitialDirectory = LibCommon.AppContext.GetInstance().Config.GetConfigParamValue("UISetting", "LastAccessDir"), Multiselect = true }; if (dialog.ShowDialog() == DialogResult.OK) { LibCommon.AppContext.GetInstance().Config.SetConfigParamValue("UISetting", "LastAccessDir", FileHelper.GetFileDir(dialog.FileNames[0])); RadTreeNode selectedNode = navigateTree.SelectedNode; RadTreeNode batchNode = selectedNode.GetBatchNode(); NBatchInfo batchInfo = batchNode.Tag as NBatchInfo; List <NFileInfo> fileInfos = BeanUtil.FileDialog2FileInfo(dialog, batchInfo.BatchNO); AddNodeWithFileInfo(selectedNode, fileInfos, batchInfo); UpdateBatchNodeTitle(batchNode); batchNode.ExpandAll(); } }