树形表增删改查
在本教程中,将演示如果实现树形表(Course_cate)的增删改查功能。你将了解:
- 初步了解 TKCore 的树形表的路由机制
- 初步了解树形表增删改查的配置方法
根据TKCore的数据库定义规范,树形表(Course_cate)的配置需要在数据表中定义的基础字段:
- parent_id:父节点id,数据库字段建议类型:int
- layer:表示树形的层级,数据库字段建议类型:varchar
- 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应用,如下图:
如果你还不了解如何创建 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文件,复制以下内容到文件内。
<?xml version="1.0" encoding="UTF-8"?>
<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>
步骤六:运行,查看效果
运行效果如下:
如果需要展示父节点的名称,请继续 步骤七,步骤八
步骤七:配置EasySearch显示父节点的名称
在路径Decoder/UserManager下创建CourseCateEasySearch.xml,复制以下内容到文件内。
<?xml version="1.0" encoding="utf-8"?>
<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:FieldName>parent_id</tk:FieldName>
<tk:NickName>ParentId</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>
步骤八:运行,查看效果
到这里,你可以点击【修改子节点】,【删除节点】,【新建子节点】等按钮,体验下框架内置的功能了。
关于TKCore的更多信息请点击: http://www.tkcore.net关注微信公众号获取TKCore最新资讯: