存储过程:找到其下的子节点
ALTER PROCEDURE [dbo].[Pro_NewsChildNote]
@newsid int
AS
BEGIN
select * from Table_NewsClass where NewsParentId=@newsid
END
DAL层方法:
public static ArrayList ChildNotes(int newsid)//根据父节点找到其下是子节点
{
ArrayList alist = new ArrayList();
SqlConnection con = new SqlConnection(DBHelper.sqlconstring);
con.Open();
SqlCommand cmd = new SqlCommand("Pro_NewsChildNote", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@newsid",SqlDbType.Int).Value = newsid;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
NewsClass nc = new NewsClass();
nc.NewsId = Convert.ToInt32(dr["NewsId"]);// Convert.ToInt32(dr[0])
nc.NewsClassName = dr["NewsClassName"].ToString();
nc.NewsParentId = Convert.ToInt32(dr["NewsParentId"]);
alist.Add(nc);
}
con.Close();
return alist;
}
.cs文件
Page_Load事件代码
if (!IsPostBack)
{
string a="所有";
TreeNode node=new TreeNode(a);
node.Value="0";
Databind(node,0);
this.TreeView1.Nodes.Add(node);
}
Databind方法:
private void Databind(TreeNodeCollection tnc, string parentId)
{
ArrayList list = Web.BLL.NewsMana.ChildNotess(Convert.ToInt32(parentId));
foreach (NewsClass nc in list)
{
TreeNode tn = new TreeNode(nc.NewsClassName.ToString());
tn.SelectAction = TreeNodeSelectAction.None;
tn.Value = nc.NewsId.ToString();
tnc.Add(tn);
if ( Web.BLL.NewsMana.ChildNotess(nc.NewsId).Count != 0)
{
Databind(tn.ChildNodes, tn.Value);
}
}
}