TKCORE框架学习之入门篇(十)--树形表增删改查

树形表增删改查

在本教程中,将演示如果实现树形表(Course_cate)的增删改查功能。你将了解:

  • 初步了解 TKCore 的树形表的路由机制
  • 初步了解树形表增删改查的配置方法

根据TKCore的数据库定义规范,树形表(Course_cate)的配置需要在数据表中定义的基础字段:

  1. parent_id:父节点id,数据库字段建议类型:int
  2. layer:表示树形的层级,数据库字段建议类型:varchar
  3. is_leaf:表示是否是树形的叶节点,数据库字段建议类型:smallint

步骤一:创建树形表,使用到的表结构如下:

  • Mysql 版本

    create table Course_cate
    (
       cate_id              int(10) not null,
       parent_id            int(10),
       layer                varchar(64),
       is_leaf              smallint(6),
       name                 varchar(64),
       create_date          datetime,
       create_id            int(10),
       update_date          datetime,
       update_id            int(10),
       primary key (cate_id)
    );
  • SQL Server 版本
    create table Course_cate (
       cate_id              int                  not null,
       parent_id            int                  null,
       layer                varchar(64)          null,
       is_leaf              smallint             null,
       name                 varchar(64)          null,
       create_date          datetime             null,
       create_id            int                  null,
       update_date          datetime             null,
       update_id            int                  null,
       constraint PK_COURSE_CATE primary key (cate_id)
    )

 

步骤二:创建树形表 PDM 模型,并使用 ToolkitSuite 工具生成 DataXML 文件。

我们已为你准备好树形表的 PDM 模型,点击下载

如果你还不了解如何使用 ToolkitSuite 工具生成 XML 配置文件,点此了解

 

步骤三:创建 Web应用

创建 “CourseCate” Web应用,如下图:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210315102838198.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjU3NzIwMg==,size_16,color_FFFFFF,t_70)

如果你还不了解如何创建 TKCore 项目,点此了解

 

步骤四:配置 DataXml 文件

复制步骤二生成的Cate.xml文件到项目的Xml/Data/CourseCate下 ,修改Cate.xml文件名为CourseCate.xml。复制以下代码到CourseCate.xml中

<tk:Tree IdField="CateId" ParentIdField="ParentId" LayerField="Layer" LeafField="IsLeaf" NameField="Name"/>

如下图:
在这里插入图片描述

提示: 如果你的数据表字段设计符合tkcore的规范 如:tree_cate_id,tree_parent_id,tree_is_leaf,tree_name ,tree_可改为其他的字段前缀。直接写 <tk:Tree />即可,如:<tk:Tree />
IdField,LayerField,LeafField,NameField,ParentIdField都是对应字段
的昵称

 

步骤五:配置 ModuleXml 文件

文件夹的路径,决定了该模块的路由,由于树形不能配置list所以用C替代list,本示例路由是:~/c/xml/C/CourseCate/CourseCate

创建Xml/Module/CourseCate/CourseCate.xml文件,复制以下内容到文件内。


<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ....\schema\v5\Module.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
tk:Module
tk:Title
tk:Content课程分类表</tk:Content>
</tk:Title>
tk:MetaData
<tk:SingleXmlMetaData DataXml="CourseCate/CourseCate.xml"/>
</tk:MetaData>
tk:Source
tk:SingleDbTreeSource
tk:Resolver
<tk:TreeMetaDataResolver AutoTrackField="true" AutoUpdateKey="true">
tk:Scheme
<tk:Tk5DataXml FileName="CourseCate/CourseCate.xml"/>
</tk:Scheme>
</tk:TreeMetaDataResolver>
</tk:Resolver>
</tk:SingleDbTreeSource>
</tk:Source>
tk:PageMaker
<tk:RazorModuleTemplatePageMaker ModuleTemplate="SingleTreeDialog">
<tk:PageTemplate Style="C">
tk:RazorData
<tk:NormalTreeData ShowNewRootButton="true"/>
</tk:RazorData>
</tk:PageTemplate>
</tk:RazorModuleTemplatePageMaker>
</tk:PageMaker>
</tk:Module>
</tk:Toolkit>

 

步骤六:运行,查看效果

运行效果如下:
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210315102946900.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjU3NzIwMg==,size_16,color_FFFFFF,t_70)

如果需要展示父节点的名称,请继续 步骤七,步骤八

 

步骤七:配置EasySearch显示父节点的名称

在路径Decoder/UserManager下创建CourseCateEasySearch.xml,复制以下内容到文件内。


<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ....\schema\v5\EasySearch.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tk:Tk5TreeEasySearch DataXml="CourseCate/CourseCate.xml" RegName="COURSECATE_ES" Author="FU" CreateDate="2020-10-28" Description="课程分类"/>
</tk:Toolkit>

在DataXml中使用COURSECATE_ES,复制以下代码替换parent_id字段定义

<tk:Field DataType="int">
tk:FieldNameparent_id</tk:FieldName>
tk:NickNameParentId</tk:NickName>
tk:DisplayName
tk:Content父节点</tk:Content>
</tk:DisplayName>
<tk:EasySearch RegName="COURSECATE_ES"></tk:EasySearch>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="EasySearch" Order="20" DefaultShow="All"/>
tk:ListDetail
tk:ListDisplay
tk:AutoDisplay/
</tk:ListDisplay>
tk:DetailDisplay
tk:AutoDisplay/
</tk:DetailDisplay>
</tk:ListDetail>
tk:Edit
tk:Display
<tk:AutoDisplay Style="Edit"/>
</tk:Display>
</tk:Edit>
</tk:Field>

 

步骤八:运行,查看效果
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20210315103003445.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjU3NzIwMg==,size_16,color_FFFFFF,t_70)

到这里,你可以点击【修改子节点】,【删除节点】,【新建子节点】等按钮,体验下框架内置的功能了。


关于TKCore的更多信息请点击:http://www.tkcore.net
关注微信公众号获取TKCore最新资讯:

posted @ 2021-03-15 10:38  tkcore  阅读(230)  评论(0)    收藏  举报