欢迎光临
我们一直在努力

ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月
编程思想:
   每条记录代表一个节点。通过表里的 2 个数字型的核心字段 f_nodeid、f_parentnodeid 形成逻辑上的层次型关系。约定 0 代表根节点。其他字段为辅助字段,与本文关系不大。
定义和初始化一对象数组 mynodes,然后一次性读取表中的记录,通过判断当前节点的父节点,依次建立所有的上下级关系。
示例数据:
运行结果:
示例下载:http://www.why100000.com/_ftps/samples/tree+db.rar
(代码调试环境:visual web developer 2005 express edition)
access数据库名:db_system.mdb
表名:tabitems
表结构:
    f_i_autoid      自动编号
    f_nodeid        数字(本节点id)
    f_parentnodeid  数字(父节点id)
    f_name          文本
    f_tag           文本
    f_url           文本
    f_order         数字
    f_ishidden      文本
    f_datetime      日期/时间

 
 
关键代码:
using system;
using system.data;
using system.data.oledb;
using system.configuration;
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;

 
 
public partial class _default : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
    {
        if (!ispostback)
        {
            string sdbpath = “./db_system.mdb”;  //”
            string spassword = “”;
            string sdbtable = “tabitems”;
            oledbconnection oconn = new oledbconnection(“provider=microsoft.jet.oledb.4.0;data source=” + server.mappath(sdbpath) + “;password=” + spassword + “;”);
            oledbdatareader odr;

 
 
            try
            {
                oconn.open();
                oledbcommand ocmd = new oledbcommand(“select * from ” + sdbtable, oconn);  // + ” order by f_level”
                odr = ocmd.executereader();

 
 
                //定义对象数组
                treenode[] mynodes = new treenode[100];

 
 
                //初始化对象数组
                for (int i = 0; i < mynodes.length; i++)
                {
                    mynodes[i] = new treenode();
                }

 
 
                //从表中取数据
                while (odr.read())
                {
                    int iparentnodeid = (int)odr[“f_parentnodeid”];
                    int imynodeid = (int)odr[“f_nodeid”];

 
 
                    if (iparentnodeid != 0)
                    {
                        mynodes[imynodeid].text = odr[“f_name”].tostring();
                        mynodes[imynodeid].navigateurl = odr[“f_url”].tostring();
                        mynodes[iparentnodeid].childnodes.add(mynodes[imynodeid]);
                    }
                    else
                    {
                        mynodes[imynodeid].text = odr[“f_name”].tostring();
                        mynodes[imynodeid].selectaction = treenodeselectaction.none;
                        treeview1.nodes.add(mynodes[imynodeid]);
                    }
                }
            }

 
 
            catch (system.exception sqle)
            {
                sqle.tostring().replace(“\n”, “<br>”);
                response.write(sqle);
            }
            finally
            {
                oconn.close();
            }

 
 
        }

 
 
    }
}
赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)-.NET教程,Asp.Net开发
分享到: 更多 (0)