首页 > 代码库 > TreeView的绑定

TreeView的绑定

        最近遇到了TreeView的数据库绑定问题,确实是弄了我好几天,特别是多级节点的分步绑定,最开始不分步,发现全部加载页面都卡爆了,真心让人头疼。所以放出来,给需要的朋友看看,以免大家走冤枉路。

1.只有一级节点的数据表绑定

部分代码:

protected void treeviewbind()
    { 
        string sqlstr=ConfigurationManager.AppSettings["constr"];
        SqlConnection con = new SqlConnection(sqlstr);
        con.Open();
        string strfac = "select * from tDepartment";
        SqlDataAdapter ada = new SqlDataAdapter(strfac,con);
        DataTable dt = new DataTable();
        ada.Fill(dt);
        string id = "Department";
        string text = "Department";
        Bind_Tv(dt, id,text);
        dt.Dispose();
        ada.Dispose();
        con.Close();

    }
    protected void Bind_Tv(DataTable dt, string id, string text)   //TreeView的递归绑定
    {
        DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据
        TreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中
        foreach (DataRowView row in dv)
        {
            tn = new TreeNode();//建立一个新节点(学名叫:一个实例)
            tn.Value = http://www.mamicode.com/row[id].ToString();//节点的Value值,一般为数据库的id值>



2.多级节点分步加载绑定

相关代码:

<asp:TreeView ID="TreeView1" runat="server" ImageSet="Simple" CssClass="gridview_m"
                                                OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" NodeIndent="35" ExpandDepth="0"
                                                ShowLines="True" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded">
                                            </asp:TreeView>

protected void bind()   //TreeView的数据绑定
    {
        string sqlstr = ConfigurationManager.AppSettings["constr"];
        SqlConnection conn = new SqlConnection(sqlstr);
        conn.Open();

        string sqlsel = "select * from tDataSheetDirectory";
        SqlCommand cmd = new SqlCommand(sqlsel, conn);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sda.Fill(dt);

        string id = "DataSheetDirectoryID";
        string text = "DirectoryName";
        string pid = "FatherID";

        DataView dvtop = new DataView(dt);             //添加根节点
        TreeNode tntop = new TreeNode();
        dvtop.RowFilter = "FatherID is null";
        foreach (DataRowView row in dvtop)
        {
            tntop.Value = http://www.mamicode.com/row[id].ToString();>