如题。本人是个菜鸟,在模仿的基础上写了如何动态生成二级节点数据后,却不懂得如何写点击节点(特别是二级节点)后动态生成相关的数据表。有哪位会的,麻烦指点一下,有源代码就最好。小弟不胜感激。
这是动态生成treeview的相关数据: protected void Page_Load(object sender, EventArgs e)
{
// 在此放置用户代码以初始化页面
if (!IsPostBack)
{ SqlConnection conn = new SqlConnection("Data Source=(local);Database=jmd_toys;Uid=sa;Pwd=709394");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from department", conn);
cmd.Connection = conn;
SqlDataAdapter da1 = new SqlDataAdapter(cmd);
DataSet ds1 = new DataSet();
da1.Fill(ds1,"department"); for (int i = 0; i < ds1.Tables["department"].Rows.Count; i++)
{
TreeNode td1 = new TreeNode();
td1.Text = ds1.Tables["department"].Rows[i]["depart_name"].ToString();
td1.Value = ds1.Tables["department"].Rows[i]["depart_id"].ToString();
TreeView1.Nodes.Add(td1); SqlConnection conn2 = new SqlConnection("Data Source=(local);Database=jmd_toys;Uid=sa;Pwd=709394");
conn2.Open();
SqlCommand cmd2 = new SqlCommand("select * from job_info where depart_id=" + ds1.Tables["department"].Rows[i]["depart_id"].ToString(), conn2);
SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "job_info"); for (int j = 0; j < ds2.Tables["job_info"].Rows.Count; j++)
{
TreeNode td2 = new TreeNode();
td2.Text = ds2.Tables["job_info"].Rows[j]["job_name"].ToString();
td1.ChildNodes.Add(td2); } conn2.Close();
}
TreeView1.DataBind(); conn.Close(); }
}是不是在TreeView1_SelectedNodeChanged 里面加载事件呀,但我不知如何加载?
这是动态生成treeview的相关数据: protected void Page_Load(object sender, EventArgs e)
{
// 在此放置用户代码以初始化页面
if (!IsPostBack)
{ SqlConnection conn = new SqlConnection("Data Source=(local);Database=jmd_toys;Uid=sa;Pwd=709394");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from department", conn);
cmd.Connection = conn;
SqlDataAdapter da1 = new SqlDataAdapter(cmd);
DataSet ds1 = new DataSet();
da1.Fill(ds1,"department"); for (int i = 0; i < ds1.Tables["department"].Rows.Count; i++)
{
TreeNode td1 = new TreeNode();
td1.Text = ds1.Tables["department"].Rows[i]["depart_name"].ToString();
td1.Value = ds1.Tables["department"].Rows[i]["depart_id"].ToString();
TreeView1.Nodes.Add(td1); SqlConnection conn2 = new SqlConnection("Data Source=(local);Database=jmd_toys;Uid=sa;Pwd=709394");
conn2.Open();
SqlCommand cmd2 = new SqlCommand("select * from job_info where depart_id=" + ds1.Tables["department"].Rows[i]["depart_id"].ToString(), conn2);
SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "job_info"); for (int j = 0; j < ds2.Tables["job_info"].Rows.Count; j++)
{
TreeNode td2 = new TreeNode();
td2.Text = ds2.Tables["job_info"].Rows[j]["job_name"].ToString();
td1.ChildNodes.Add(td2); } conn2.Close();
}
TreeView1.DataBind(); conn.Close(); }
}是不是在TreeView1_SelectedNodeChanged 里面加载事件呀,但我不知如何加载?
是不是在TreeView1_SelectedNodeChanged 里面加载事件呀,但我不知如何加载?
-----------
是在这个事件中如:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
//获取到当前点击的节点
TreeNode node = TreeView1.SelectedNode;
if (node != null)
{
// node.Text或者node.Value,根据节点名称。继续加载就行了。
}
}
代码要优化,使用数据库操作类或实体类
using(SqlConnection conn = new SqlConnection(""))
{}
td2.NavigateUrl = "";
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (this.TreeView1.SelectedNode != null)
{
string id=this.TreeView1.SelectedNode.Value.Trim();
}
}