public partial class Select_Dept : Form
{
DataSet ds = new DataSet();
DB db = new DB();
private string DeptID;
private string DeptName;
public Select_Dept()
{
InitializeComponent();
}
private void Select_Dept_Load(object sender, EventArgs e)
{
initTree();
}
private void initTree()
{
getData();
if (ds.Tables[0].Rows.Count > 0)
{
InitTree0(treeDept);
treeDept.ExpandAll(); //展开所有数据
}
}
private void getData()
{
C_Base_Dept c_B = new C_Base_Dept();
string strWhere = "";
strWhere = " void_flag=0 ";
ds = c_B.GetList(-1, strWhere, "ParentID");
}
//根结点加载函数
private void InitTree0(TreeView tree)
{
tree.Nodes.Clear(); //TreeView1为TreeView控件
//Tree_Dept.Nodes.Clear();
TreeNode root = new TreeNode("根节点");
tree.Nodes.Add(root);
DataRow[] rows = ds.Tables[0].Select("ParentID=0");
for (int i = 0; i < rows.Length; i++)
{
TreeNode T_root = new TreeNode();
DataRow dr = rows[i];
T_root.Tag = dr["Base_DeptID"].ToString();
T_root.Text = dr["CNName"].ToString();
root.Nodes.Add(T_root);
InitTree(T_root, dr["Base_DeptID"].ToString()); //根结点加载完后,开始调用加载子结点的函数,并开始递归。
}
}
//子树结点加载函数
private void InitTree(TreeNode Nd, String Parent_id)
{
DataRow[] rows = ds.Tables[0].Select("ParentID=" + Parent_id);
if (rows != null)
{
for (int i = 0; i < rows.Length; i++)
{
TreeNode Tnd = new TreeNode();
DataRow dr = rows[i];
Tnd.Tag = dr["Base_DeptID"].ToString();
Tnd.Text = dr["CNName"].ToString();
Nd.Nodes.Add(Tnd);
InitTree(Tnd, dr["Base_DeptID"].ToString()); //递归调用
}
}
}
private void treeDept_AfterSelect(object sender, TreeViewEventArgs e)
{
DeptID = treeDept.SelectedNode.Tag.ToString();
DeptName = treeDept.SelectedNode.Text;
this.DialogResult = DialogResult.OK;
}
public string GetDeptID
{
get
{
return DeptID;
}
}
public string GetDeptName
{
get
{
return DeptName;
}
}
}
//父窗体接收参数
private void BtnSelect_Click(object sender, EventArgs e)
{
Select_Dept cs = new Select_Dept();
cs.StartPosition = FormStartPosition.CenterScreen;
cs.ShowDialog();
if (cs.DialogResult == DialogResult.OK)
{
lblDeptID.Text = cs.GetDeptID;
TxtDeptName.Text = cs.GetDeptName;
cs.Close();
}
}