[Reference] MultiTextField

2014-04-25 14:43:09by ???

MultiTextField

MultiTextField是一个提供文本多条输入以及能够通过自动查询选取记录,普遍应用于类似邮件收件人输入和选择,继承自TextField组件,拥有TextField标签的属性以及TextField对象的方法和事件。

上图是MultiTextField组件在页面中的呈现,输入框前的文字信息是通过MultiTextField标签属性prompt来定义的。

MultiTextField定义

在screen文件中我们通过<a:multiTextField>标签来定义一个MultiTextField对象。

<a:dataSet id="ds" autoCreate="true">
    <a:fields>
        <a:field name="article_title" autoComplete="true" fuzzyFetch="true" autocompleteservice="demo.doc_article_lov" 
prompt="自动模糊匹配——在尾部拼接%(autocomplete=true;fuzzyFetch=true;)">
            <a:mapping>
                <a:map from="article_id" to="article_id"/>
                <a:map from="article_title" to="article_title"/>
                <a:map from="category_name" to="category_name"/>
                <a:map from="category_id" to="category_id"/>
                <a:map from="nick_name" to="nick_name"/>
            </a:mapping>
        </a:field>
        <a:field name="category_name" autoComplete="true" autoCompleteField="article_title" fetchRemote="false" 
autocompleteservice="demo.doc_article_lov" lovWidth="485" 
prompt="自动指定匹配字段匹配;关闭获取记录功能(fetchRemote=false;autocomplete=true;autoCompleteField=article_title)">
            <a:mapping>
                <a:map from="article_id" to="article_id"/>
                <a:map from="article_title" to="article_title"/>
                <a:map from="category_name" to="category_name"/>
                <a:map from="category_id" to="category_id"/>
                <a:map from="nick_name" to="nick_name"/>
            </a:mapping>
        </a:field>
        <a:field name="category_id" fetchSingle="true" autocompleteservice="demo.doc_article_lov" 
prompt="获取记录有重复时弹出选择窗口(fetchSingle=true)">
            <a:mapping>
                <a:map from="article_id" to="article_id"/>
                <a:map from="article_title" to="article_title"/>
                <a:map from="category_name" to="category_name"/>
                <a:map from="category_id" to="category_id"/>
                <a:map from="nick_name" to="nick_name"/>
            </a:mapping>
        </a:field>
    </a:fields>
</a:dataSet>

<a:form column="1" labelWidth="300" style="margin:10px;" title="MultiTextField">
    <a:multiTextField name="article_title" bindTarget="ds" width="300">
    <a:multiTextField name="category_name" bindTarget="ds" width="300"/>
    <a:multiTextField name="category_id" bindTarget="ds" width="300"/>
    <a:multiTextField name="article_id" bindTarget="ds" width="300" prompt="article_id" />
    <a:multiTextField name="nick_name" bindTarget="ds" width="300" prompt="nick_name"/>
</a:form>

multiTextField标签可以设置一个id属性,id是组件的唯一标识,我们可以在页面脚本中用$('id')的方法获得该id对应的组件对象,进而可以调用相应的函数方法。

multiTextField标签的bindTarget属性可指定一个dataset对象的id,name属性可指定该dataset其中一个field的名字。这两个属性必须联合使用,其功能是将multiTextField对象绑定到dataset中的一个field上,进而我们只要对dataset进行操作就能即时反映在multiTextField上,另外multiTextField上的文字编辑也会立刻修改dataset中的数据。

如上代码,field标签是multiTextField所绑定的dataset中的一条字段(field),autocompleteservice属性可指定自动查询的BM。注意:以上属性均可定义在multiTextField标签上,效果相同,但是建议定义在field标签上。

field标签下的mapping标签定义了自动查询出的选项集的字段和主窗口的字段的联系关系,每条map标签都有from和to属性,from是自动查询出的选项的字段,to是multiTextField绑定的dataset中的字段。

MultiTextField标签属性

表 1. 

属性名 用途 默认值 是否必填
autocompleteservice 自动查询数据对应的BM。
fetchRemote 手工输入后是否自动查询数据。
fuzzyFetch 自动模糊匹配——在尾部拼接%
其他 请参阅TextField的标签属性。

MultiTextField对象事件

表 2. 

事件名 用途
commit 窗口的选项被选择后触发的事件,手工输入后自动查询数据(fetchRemote=true)的时候也会触发。
其他 请参阅TextField的对象事件

Comments

0 Responses to the article

暂时没有评论。

发表评论