protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = DB.Myclass();
con.Open();
SqlCommand cmd = new SqlCommand("select *from department", con);
SqlDataReader red = cmd.ExecuteReader();
TreeNode tt = new TreeNode();
tt.Text = "请选择部门:";
tr1.Nodes.Add(tt);
while (red.Read())
{
TreeNode tn = new TreeNode();
tn.Value = red.GetInt32(0).ToString();
tn.Text = red.GetString(1);
tt.ChildNodes.Add(tn);
}
red.Close();
foreach (TreeNode tz in this.tr1.Nodes)
{ //int a = Convert.ToInt32(tz.Value);
SqlCommand cmdd = new SqlCommand("select *from ren where rid = " + a, con);
SqlDataReader redd = cmdd.ExecuteReader();
while (redd.Read())
{
TreeNode tk =new TreeNode();
tk.Text = redd.GetString(2);
tk.Value = redd.GetInt32(1).ToString();
tz.ChildNodes.Add(tk);
} redd.Close();
}
con.Close();
}
两个问题:
1.int a = Convert.ToInt32(tz.Value);提示"输入字符串的格式不正确";
2.把a直接为1,出现结果没有分层
{
SqlConnection con = DB.Myclass();
con.Open();
SqlCommand cmd = new SqlCommand("select *from department", con);
SqlDataReader red = cmd.ExecuteReader();
TreeNode tt = new TreeNode();
tt.Text = "请选择部门:";
tr1.Nodes.Add(tt);
while (red.Read())
{
TreeNode tn = new TreeNode();
tn.Value = red.GetInt32(0).ToString();
tn.Text = red.GetString(1);
tt.ChildNodes.Add(tn);
}
red.Close();
foreach (TreeNode tz in this.tr1.Nodes)
{ //int a = Convert.ToInt32(tz.Value);
SqlCommand cmdd = new SqlCommand("select *from ren where rid = " + a, con);
SqlDataReader redd = cmdd.ExecuteReader();
while (redd.Read())
{
TreeNode tk =new TreeNode();
tk.Text = redd.GetString(2);
tk.Value = redd.GetInt32(1).ToString();
tz.ChildNodes.Add(tk);
} redd.Close();
}
con.Close();
}
两个问题:
1.int a = Convert.ToInt32(tz.Value);提示"输入字符串的格式不正确";
2.把a直接为1,出现结果没有分层
{
if (this.TreeView1.Nodes.Count > 0)
this.TreeView1.Nodes.Clear(); DataTable TreeView1 = DataClass.ExecuteDataTable("select * from t_Dept");
DataRow[] rows = TreeView1.Select("ParentID = 0");
for (int i = 0; i < rows.Length; i++)
{
TreeNode node = new TreeNode();
node.Text = rows[i]["deptName"].ToString();
//node.ImageUrl ="../images/house.ico";
node.Value = rows[i]["Id"].ToString();
// node.Value = "9999";
this.TreeView1.Nodes.Add(node);
this.AddChildNodes(ref TreeView1, ref node); } this.TreeView1.DataBind(); } private void AddChildNodes(ref DataTable TreeView1, ref TreeNode node)
{
DataRow[] rows = TreeView1.Select("ParentID=" + node.Value);
for (int i = 0; i < rows.Length; i++)
{
TreeNode NewNode = new TreeNode();
NewNode.Text = rows[i]["deptName"].ToString();
//NewNode.ImageUrl ="../images/house.ico";
NewNode.SelectAction = TreeNodeSelectAction.Select;
NewNode.Value = rows[i]["ID"].ToString();
//NewNode.Value = "888888";
this.AddChildNodes(ref TreeView1, ref NewNode);
node.ChildNodes.Add(NewNode); }
}-----难免有错,错了莫怪.
这里的tz.Value你没有设置值为null,当你转换null时,提示错误是正常的。
2.把a直接为1,出现结果没有分层
首先你要确认ren表中的rid有等于1的,如果没有,怎么可能会分层呢?
//可以手工修改几条数据的rid=1试试。肯定可以加载记录的想要分层,要把二个表中的父子关系搞好了,再加载也就没有问题了。