EasySearch 控件使用
-
EasySearch 的含义:自动填充或选择控件
-
EasySearch 和代码表的区别:EasySearch 是可以输入内容去匹配或直接选择,对于数据量多的情况下可以快速匹配到相关选择
效果图
在 Xml/Data 文件夹下的 xml 文件中配置:
<tk:Field DataType="string"> <tk:FieldName>USER_AREA</tk:FieldName> <tk:DisplayName> <tk:Content>地区</tk:Content> </tk:DisplayName> <tk:Length>6</tk:Length> <tk:EasySearch RegName="SX"/> <tk:Layout Layout="PerUnit" UnitNum="1"/> <tk:Control Control="EasySearch" Order="200" DefaultShow="AllNoList"/> </tk:Field>
需要指定注册名:
<tk:EasySearch RegName="SX"/>
Control 配置成"EasySearch"
<tk:Control Control="EasySearch" Order="200" DefaultShow="AllNoList"/>
效果图:
MultipleEasySearch控件
MultipleEasySearch控件是可复选的EasySearch控件
在 Xml/Data 文件夹下的 xml 文件中配置:
<tk:Field DataType="string">
<tk:FieldName>USER_AREA</tk:FieldName>
<tk:DisplayName>
<tk:Content>地区</tk:Content>
</tk:DisplayName>
<tk:Length>6</tk:Length>
<tk:EasySearch RegName="SX"/>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="MultipleEasySearch" Order="200" DefaultShow="AllNoList"/>
</tk:Field>
需要指定注册名:
<tk:EasySearch RegName="SX"/>
Control 配置成"EasySearch"
<tk:Control Control="MultipleEasySearch" Order="200" DefaultShow="AllNoList"/>
效果图:
EasySearch级联配置
项目开发中会碰到需要做关联的情况,比较选择城市,希望关联前面控件的省选项,或者选择小类别时希望关联前面的大类别。EasySearch可以进行级联配置。
首先,我们需要进行数据准备,首先需要准备两个EasySearch(第一个可以是Combo也可以是EasySearch,但是后续级联的只能是EasySearch),一个是省的,一个是市的。此外,由于市要能根据省进行过滤,那么对存储市的数据表还必须有省的字段,标注该市属于哪个省,这样才能进行对应的过滤。
我们对省的数据表定义成标准代码表CD_PROVINCE,标准代码表可以无需注册定义,直接使用。对市的EasySearch定义如下:
<tk:Tk5EasySearch DataXml="City/ApiCity.xml" RegName="CITY" Author="TK" Description="城市"/>
DataXml文件ApiCity.xml的定义如下:
<?xml version="1.0" encoding="UTF-8"?>
<tk:Toolkit version="5.0" xsi:schemaLocation="http://www.qdocuments.net ..\..\schema\v5\DataXml.xsd" xmlns:tk="http://www.qdocuments.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tk:Table TableName="API_CITY" NameField="Name">
<tk:TableDesc>
<tk:Content>城市表</tk:Content>
</tk:TableDesc>
<tk:Field DataType="string" IsKey="true" IsEmpty="false">
<tk:FieldName>API_CITY_ID</tk:FieldName>
<tk:NickName>Id</tk:NickName>
<tk:DisplayName>
<tk:Content>Id</tk:Content>
</tk:DisplayName>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="Hidden" Order="10" DefaultShow="All"/>
</tk:Field>
<tk:Field DataType="int" IsEmpty="false">
<tk:FieldName>API_PROVINCE</tk:FieldName>
<tk:NickName>ApiProvince</tk:NickName>
<tk:DisplayName>
<tk:Content>省</tk:Content>
</tk:DisplayName>
<tk:CodeTable RegName="CD_PROVINCE"/>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="Combo" Order="20" DefaultShow="All"/>
</tk:Field>
<tk:Field DataType="string" IsEmpty="false">
<tk:FieldName>API_CITY_NAME</tk:FieldName>
<tk:NickName>Name</tk:NickName>
<tk:DisplayName>
<tk:Content>市</tk:Content>
</tk:DisplayName>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="Text" Order="30" DefaultShow="All"/>
</tk:Field>
</tk:Table>
</tk:Toolkit>
这里我们看到昵称为ApiProvince的字段存储了市对应的省,这样在过滤时,我们可以根据该字段产生过滤的SQL语句,从而只显示选择的省份下包含的市。
下一步,我们来具体配置需要进行级联的DataXml文件,例子如下:
<tk:Field DataType="int" IsEmpty="true">
<tk:FieldName>API_PROVINCE</tk:FieldName>
<tk:NickName>Province</tk:NickName>
<tk:DisplayName>
<tk:Content>省</tk:Content>
</tk:DisplayName>
<tk:CodeTable RegName="CD_PROVINCE"/>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="Combo" Order="50" DefaultShow="All"/>
</tk:Field>
<tk:Field DataType="string" IsEmpty="true">
<tk:FieldName>API_CITY</tk:FieldName>
<tk:NickName>City</tk:NickName>
<tk:DisplayName>
<tk:Content>市</tk:Content>
</tk:DisplayName>
<tk:EasySearch RegName="CITY">
<tk:RefValue Field="ApiProvince" RefField="Province"/>
</tk:EasySearch>
<tk:Layout Layout="PerUnit" UnitNum="1"/>
<tk:Control Control="EasySearch" Order="50" DefaultShow="All"/>
</tk:Field>
关键是配置EasySearch标签下的RefValue:
Field是EasySearch定义的表中关联字段 (例子中,是对应CITY的EasySearch的DataXml文件中,标签Field下的NickName是ApiProvince的字段)
RefField是当前xml文件中关联的字段
效果图:
关于TKCore的更多信息请点击:http://www.tkcore.net
关注微信公众号获取TKCore最新资讯: