好多人 包括我自己啊 对treeview 不大了解 我现在把 treeview如何绑定数据库的代码贴出来,望高手指正!
public partial class UFishing_admin_productList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UDALMgr dal = new UDALMgr();//UDALMgr 是自己做的一个类
treeDS = dal.DataSet("select * from ProductStyle");
myds.Dispose();
InitTreeRootNode();
treeDS.Dispose();
}
}
DataSet myds = new DataSet();
DataView dataview = new DataView();
private DataSet treeDS;
public void InitTreeRootNode()
{
DataView dataView = new DataView();
dataView = treeDS.Tables[0].Copy().DefaultView;
if (dataView.Table.Rows.Count == 0)
{
return;
}
dataView.RowFilter = "len(ProductStyleID)=2";
foreach (DataRowView drv in dataView)
{
TreeNode tn = new TreeNode();
tn.Value = drv["ProductStyleID"].ToString();
//tn.ImageUrl = drv["ImageCh"].ToString();
tn.Text = drv["ProductStyleNameCh"].ToString();
this.TreeView1.Nodes.Add(tn);
InitTreeChildNode(tn.ChildNodes, 2, tn.Value);
}
}
private void InitTreeChildNode(TreeNodeCollection TNC, int js, string classParentID)
{
DataView dataView = new DataView();
int myjs = 2 * js;
dataView = treeDS.Tables[0].Copy().DefaultView;
dataView.RowFilter = "len(ProductStyleID)=" + myjs.ToString() + "and ProductStyleID like '" + classParentID + "%'";
if (js >= 4) return;
foreach (DataRowView drv in dataView)
{
TreeNode tn = new TreeNode();
tn.Value = drv["ProductStyleID"].ToString();
tn.Text = drv["ProductStyleNameCh"].ToString();
//tn.NavigateUrl = "SwitchPage.aspx?MenuID=" + drv["ProductStyleID"].ToString();
tn.Target = "main";
TNC.Add(tn);
InitTreeChildNode(tn.ChildNodes, js + 1, tn.Value);
}
}
}
这样就可以得到 99个大类,理论上可以无限分类!
原文:http://qiangzi.blog.whnews.cn/blog.php?do-showone-itemid-8469-type-blog.html