TKCORE框架学习之入门篇(十)--树形表增删改查
树形表增删改查
在本教程中,将演示如果实现树形表(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最新资讯:

 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号