国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Asp.Net中使用TreeView連接數(shù)據(jù)庫動態(tài)加載節(jié)點問題

Asp.Net中使用TreeView連接數(shù)據(jù)庫動態(tài)加載節(jié)點問題

[ 標(biāo)簽:treeview 節(jié)點,asp.net,treeview ]
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class TreeViewData : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string connstr = "server=.;database=Fuck;uid=sa;pwd=880815";
            SqlDataAdapter adp = new SqlDataAdapter("select * from class", connstr);
            DataSet ds = new DataSet();
            adp.Fill(ds);
            DataView dv = ds.Tables[0].DefaultView;
            dv.RowFilter = "parentId = 0";
            foreach (DataRowView drv in dv)
            {
                TreeNode RootNode = new TreeNode(drv.Row["className"].ToString(),drv.Row["classId"].ToString());
                BuildNode(ds, RootNode);
                this.TreeView1.Nodes.Add(RootNode);
            }
        }
    }
    void BuildNode(DataSet ds,TreeNode node)
    {
        DataView dv = ds.Tables[0].DefaultView;
        dv.RowFilter = "parentId =" + node.Value;
        foreach (DataRowView drv in dv)
        {
            TreeNode ChildNode = new TreeNode(drv.Row["className"].ToString(),drv.Row["classId"].ToString());
            BuildNode(ds, ChildNode);
            node.ChildNodes.Add(ChildNode);
        }
    }

}
問題補充  2009-07-16 13:24
 


我的問題是: 為什么父節(jié)點 - 車子。 在數(shù)據(jù)庫里明明還有奧迪和別克  。執(zhí)行后卻沒有 , 而且還吧房子和女人兩個父節(jié)點變成車子的子節(jié)點了。 我知道代碼錯了但是不知道錯在哪里  應(yīng)該怎么改 ?
 
 
滿意答案

/*

我個人認(rèn)為問題出在 dataTable.DefaultView中,這個DefaultView我感覺好像是單例模式的

因為,在調(diào)用private void AddChildNode(DataTable dt, TreeNode node){...}時,dataTable.DefaultView被改變了,

所以要先添加根結(jié)點,然后根據(jù)每一個根結(jié)點添加子節(jié)點就可以了

*/

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            DataTable dt = GoodsCategoryDAL.GetAllGoods2();//從數(shù)據(jù)庫里取出數(shù)據(jù)

            this.treeView.Nodes.Clear();

            DataView dv = dt.DefaultView;
            dv.RowFilter = "parentId=0";

            //加入根結(jié)點
            foreach (DataRowView drv in dv)
            {
                TreeNode root = new TreeNode(drv.Row["className"].ToString(), drv.Row["classId"].ToString());
                this.treeView.Nodes.Add(root);
            }
            //根據(jù)每一個根結(jié)點加入對應(yīng)的子節(jié)點
            for (int i = 0; i < this.treeView.Nodes.Count; i++)
            {
                this.AddChildNode(dt, this.treeView.Nodes[i]);
            }
        }
    }

 

//添加子節(jié)點
    private void AddChildNode(DataTable dt, TreeNode node)
    {
        DataView dv = dt.DefaultView;
        dv.RowFilter = "parentId=" + node.Value.Trim();

        foreach (DataRowView drv in dv)
        {
            TreeNode childNode = new TreeNode(drv.Row["className"].ToString(), drv.Row["classId"].ToString());
            node.ChildNodes.Add(childNode);
        }
    }

/*

我個人建議不要用DataTable,DataSet之類的集合作在前臺中使用,因為這樣不能體現(xiàn)出面向?qū)ο蟮乃枷?/p>

你可以用List<T>

*/

protected void Page_Load(object sender, EventArgs e)
    {
        List<GoodsClassModel> gcmlist = GoodsCategoryDAL.GetAllGoods1();//獲取數(shù)據(jù)
        //循環(huán)所有數(shù)據(jù)
        foreach (GoodsClassModel gcm in gcmlist)
        {
            //如果parentId=0是根結(jié)點
            if (gcm.ParentId == 0)
            {
                TreeNode root = new TreeNode(gcm.ClassName, gcm.ClassId.ToString());
                this.treeView.Nodes.Add(root);
                //添加子節(jié)點
                this.AddChildNode(root, gcmlist);
            }
        }
    }

    /// <summary>
    /// 添加子節(jié)點
    /// </summary>
    /// <param name="node"></param>
    /// <param name="gcmlist"></param>
    private void AddChildNode(TreeNode node, List<GoodsClassModel> gcmlist)
    {
        foreach (GoodsClassModel gcm in gcmlist)
        {
            if (gcm.ParentId == Convert.ToInt32(node.Value))
            {
                TreeNode childNode = new TreeNode(gcm.ClassName, gcm.ClassId.ToString());
                node.ChildNodes.Add(childNode);
                //添加子節(jié)點
                this.AddChildNode(childNode, gcmlist);
            }
        }
    }

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#生成無限級別菜單 treeview綁定數(shù)據(jù)庫 實踐成果
采用遞歸算法為TreeView控件加載節(jié)點(節(jié)點信息保存于SqlServer) ASP.Net相...
C# TreeView從數(shù)據(jù)庫綁定數(shù)據(jù)
ASP.NET TREEVIEW 使用方法(2) - yyf919 - 博客園
TreeView綁定產(chǎn)品信息
數(shù)據(jù)庫驅(qū)動的asp.net treeview
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服