[Reference] Lov

2011-11-21 16:25:12by ???

Lov

Lov是一个提供文本输入编辑和通过弹出窗口提供选项选择的组件,继承自TextField组件,拥有TextField标签的属性以及TextField对象的方法和事件。弹出窗口中为一个固定格式的页面,包含选项集的查询条件输入框和用Grid组件成列的选项集。

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

Lov定义

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

<a:dataSet id="gld_exchange_rate_ds" autocreate="true">
    <a:datas dataSource="/model/gerc"/>
    <a:fields>
    	<a:field name="currency_code_frn" lovGridHeight="300" lovHeight="460"
		lovService="gld.gld_currency_lov?currency_code_frn=${/model/gerc/record/@currency_code}"
		lovWidth="490" title="币种选择">
            <mapping>
                <map from="currency_code" to="currency_code_frn"/>
                <map from="currency_name" to="currency_name_frn"/>
            </mapping>
        </a:field>
    </a:fields>
    <a:field name="currency_name_frn" readonly="true"/>
</a:dataSet>

<a:lov name="currency_code_frn" bindTarget="gld_exchange_rate_ds" prompt="GLD_CURRENCY.CURRENCY_CODE_FRN">
    <a:events>
        <a:event handler="login" name="enterdown"/>
    </a:events>	
</a:lov>

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

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

如上代码,field标签是lov所绑定的dataset中的一条字段(field),field标签中lovHeight,lovWidth属性可指定弹出窗口的高度和宽度,lovService属性可指定弹出窗口中生成页面的BM,title属性可指定弹出框的标题。注意:以上属性均可定义在lov标签上,效果相同,但是建议定义在field标签上。

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

events标签定义了需要响应的事件函数,例如enterdown事件,当键盘键入回车键时,Lov会触发enterdown事件,这样我们可以通过配置一个客户端函数login来响应。

function login(){
    var lds = $('login_dataset');
    var record = lds.getCurrentRecord();
    Aurora.request({url:'login.svc', para:record.data, success:function(){
        window.location.href='role_select.screen'
    },scope:this});
}
Lov标签属性

表 1. 

属性名 用途 默认值 是否必填
lovGridHeight 弹出窗口中Grid的高度。 350
lovHeight 弹出窗口的高度。 400
lovService 弹出窗口中数据对应的BM。
lovUrl 弹出窗口中页面的Url。
lovWidth 弹出窗口的宽度。 400
title 弹出窗口的标题。
fetchRemote 手工输入后是否自动查询数据。
其他 请参阅TextField的标签属性。

Lov对象事件

表 2. 

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

Attachments
  1. lov.rar

Comments

0 Responses to the article

暂时没有评论。

发表评论