FineUI 官方论坛

标题: tree数据库绑定的例子 [打印本页]

作者: goodlost    时间: 2013-10-25 01:22
标题: tree数据库绑定的例子
本帖最后由 goodlost 于 2013-10-25 01:26 编辑

看到很多人纠结这个问题,包括我在内。
下午自己试验了一把,没想到成功了。这里就告诉学习的人。
我是用得强类型的DATASET
       Table_nameTableAdapter fg = new Table_nameTableAdapter();
        DataSet1.Table_nameDataTable dataTable = fg.GetData(1);
        for (int i = 0; i < dataTable.Count; i++)
        {
            DataSet1.Table_nameRow row = dataTable;
            FineUI.TreeNode node = new TreeNode();
            node.Text = row["name"].ToString();
            node.Expanded = true;
            treeMenu.Nodes.Add(node);


作者: goodlost    时间: 2013-10-25 01:28
数据表我就弄了三个值 id  name  class  根据getdata返回的值去查询表,返回name的值。三石说的对,不循环或者递归,无法将内容绑定到tree的id上。为神马不能做成类似于datatable之类的控件,然后直接绑定呢。
作者: sanshi    时间: 2013-10-25 09:45
goodlost 发表于 2013-10-25 01:28
数据表我就弄了三个值 id  name  class  根据getdata返回的值去查询表,返回name的值。三石说的对,不循环 ...

树型结构和表格型结构是完全不同,所以不能使用相同的数据结构

多放点详细代码




作者: erp8@live.cn    时间: 2013-10-25 14:43
同样的问题,困惑好久,求解
求数据加载成功的示例
作者: goodlost    时间: 2013-10-26 20:53
好吧居然真有人要,那我就开始作业,带图。首先是本机只安装了VS2008和SQLEXPRESS 2008  版本的。
然后使用的是VS自带的强类型DATASET,用这个的好处呢就是不用你编写数据库连接字符串,还有SQL语句等等,都是系统帮你实现,你只需要把建好得表拖过来就OK。[attach]3423[/attach] 如图所示,先建立一个XSD文件。

作者: goodlost    时间: 2013-10-26 20:56
然后就是把表拽到你的DATASET文件中如图[attach]3424[/attach]


作者: goodlost    时间: 2013-10-26 21:01
[attach]3425[/attach]


作者: goodlost    时间: 2013-10-26 21:02
页面的代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>FineUI连接数据库学习</title>
    <link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <xageManager ID="ageManager1" AutoSizePanelID="RegionPanel1" runat="server"></xageManager>
    <x:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server">
        <Regions>
            <x:Region ID="Region2" Split="true" Width="200px" Margins="0 0 0 0" ShowHeader="false"
                Title="目录" EnableCollapse="true" Layout="Fit" Position="Left" runat="server">
                <Items>
                    <x:Accordion ID="Accordion1" runat="server" ShowBorder="false" ShowHeader="false"
                        ShowCollapseTool="true">
                        <anes>
                            <x:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="~/images/16/1.png"
                                BodyPadding="2px 5px" Layout="Fit" ShowBorder="false">
                                <Items>
                                    <x:Tree runat="server" EnableArrows="true" ShowBorder="false" ShowHeader="false"
                                        AutoScroll="true" ID="treeMenu">
                                    </x:Tree>
                                </Items>
                            </x:AccordionPane>
                            <x:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="~/images/16/4.png"
                                BodyPadding="2px 5px" ShowBorder="false">
                                <Items>
                                    <x:Tree runat="server" EnableArrows="True" ShowBorder="True" ShowHeader="False" AutoScroll="True"
                                        ID="treeMenu2">
                                    </x:Tree>
                                </Items>
                            </x:AccordionPane>
                        </Panes>
                    </x:Accordion>
                </Items>
            </x:Region>
            <x:Region ID="Region3" ShowHeader="false" EnableIFrame="true" IFrameUrl="~/accordion/accordion_tree_index.htm"
                IFrameName="main" Margins="0 0 0 0" Position="Center" runat="server">
            </x:Region>
        </Regions>
    </x:RegionPanel>
    <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/common/menu.xml">
    </asp:XmlDataSource>
    </form>
</body>
</html>



作者: goodlost    时间: 2013-10-26 21:07
本帖最后由 goodlost 于 2013-10-26 21:17 编辑

后台代码,本人也是小白一个,后续的内容我会继续添加。:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DataSet1TableAdapters;
using TreeNode = FineUI.TreeNode;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadData();
        }
    }

    private void LoadData()
    {
       Table_nameTableAdapter fg = new Table_nameTableAdapter();//声明一个Table_nameTableAdapter 类
        DataSet1.Table_nameDataTable dataTable = fg.GetData(1);//fg.GetData(1) 括号中得1是只查找表中class为1的name
        for (int i = 0; i < dataTable.Count; i++)//循环取出所有的菜单名称并且绑定到页面中的tree中。
        {
            DataSet1.Table_nameRow row = dataTable;//声明一个row数组,有表中的名称行数个数组。 for中得 dataTable.Count就是取得行数值,并且从0开始循环到所有表中的行结束。
            FineUI.TreeNode node = new TreeNode();//声明一个fineUI的树形菜单类。
            node.Text = row["name"].ToString();//将row中得name值与菜单类绑定
            node.Expanded = true;
            treeMenu.Nodes.Add(node);
        }
    }

}

最后上数据表的图[attach]3431[/attach]
注意ID设置为主键。自增。这些是习惯撒,老鸟一笑而过把,这个是给纯粹的小白看得。

作者: goodlost    时间: 2013-10-26 21:18
最后补一张效果图吧[attach]3432[/attach]
作者: erp8@live.cn    时间: 2013-10-27 10:35
goodlost 发表于 2013-10-26 21:07
后台代码,本人也是小白一个,后续的内容我会继续添加。:
using System;
using System.Collections.Generi ...

感谢你耐心讲解tree实现方法,
受益非浅!
作者: goodlost    时间: 2013-10-27 15:46
共同学习拉,希望大家都把自己的心得写出来共同学习咯。




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4