using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//填充第一级节点
DataView dv = drv("select * from big");
foreach (DataRowView datav in dv)
{//循环数据,读取到节点上
TreeNode tn = new TreeNode();
tn.Text = datav["title"].ToString();
tn.Value = datav["bid"].ToString();
tn.Expanded = false; //当前节点都是折叠起来的
TreeView1.Nodes.Add(tn); //填充
AddchildNodes(tn); //调用方法填充二级节点
}
}
}
private DataView drv(string sql)
{
string conn = "Server=.;User id=sa;Pwd=L;Database=test"; //这个是我本地的数据库命令
SqlConnection con = new SqlConnection(conn);
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
sda.Fill(ds, "tree");
return ds.Tables["tree"].DefaultView; //注意一下这里的返回值
}
private void AddchildNodes(TreeNode tn)
{//二级节点
int bid = Convert.ToInt32(tn.Value);
DataView dv = drv("select * from class where bid = " + bid + "");
foreach (DataRowView datav in dv)
{
TreeNode ctn = new TreeNode();
ctn.Text = datav["title"].ToString();
ctn.Value = datav["cid"].ToString();
ctn.NavigateUrl = "http://mixangel.blog.51cto.com/";
tn.ChildNodes.Add(ctn); //加载到tn的下级节点
}
}
protected void Button1_Click(object sender, EventArgs e)
{
//按钮事件,根据check选定与否来显示
if (TreeView1.CheckedNodes.Count > 0)
{
foreach (TreeNode tn in TreeView1.CheckedNodes)
{
if (tn.ChildNodes.Count > 0)
{
foreach (TreeNode ctn in tn.ChildNodes)
{
Response.Write(ctn.Text + "<br>");
}
}
else
{
Response.Write(tn.Text + "<br>");
}
}
}
}
//下面是TreeView的三个事件,非常简单,就是点击TreeView触发的事件,代码实现后可以看看效果。
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
Label1.Text = TreeView1.SelectedNode.Text;
}
protected void TreeView1_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
{
Label1.Text = "你折叠了" + e.Node.Text;
}
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
Label1.Text = "你展开了" + e.Node.Text;
}
}