jxWebUI--按钮
按钮是最常用的动作事件触发控件,其类型为:
button
定义格式
r = t.row()
r.button(组件名).属性(属性值)
注:如果不需要操作组件,则组件名可省略
属性
width
类型:int
缺省值:
控件的宽度。
宽度并非绝对量,而是根据表格行中各控件的width属性在所有控件的width总和的占比来分配各控件的实际宽度的。
text
类型:string
缺省值:
按钮上显示的文本。
capaname
类型:string
缺省值:
事件所关联的capa名。motion为cmd的按钮可以忽略capaname,打开对话框的按钮的capaname也可以忽略。因为这二者都是触发的当前capaInstance的事件。
motion
类型:string
缺省值:
事件类型。
demand
类型:string
缺省值:
事件名。
jxWebUI中的按钮与工具条,当被点击后就会触发一个事件,这个事件的名字就是:
capaname.motion.demand
capaname:就是在创建capa时送入的capa名:capa = jxWebCapa('test.query_device')
motion:其实就是事件类型,就两种:disp【页面显示】、cmd【动作触发,相当于调用capa.event修饰的函数】
demand:disp中就是请求显示的page名,cmd中就是函数名
如果是要显示到其它tab中的主page,则需要送出capaname;如果是显示对话框或cmd,则可以忽略capaname。当然,为避免问题,最好所以的按钮与工具条都设置capaname属性。
color
类型:string
缺省值:primary
按钮颜色。包括:
- primary:重点蓝
- success:成功绿
- info:信息蓝
- warning:警告橙
- danger:危险红
icon
类型:string
缺省值:
按钮上可以带一个图标。图标名是FaIcon(Font Awesome Icon)中的图标名。
iconSize
类型:int
缺省值:2
如果设置了icon的话,则为图标大小,否则忽略。
ignoreCapaid
类型:bool
缺省值:false
disp其它页面时,是否需要忽略掉capaid。不忽略掉capaid,则会送入当前已经打开的capaInstance的id,这可能会导致混乱。
但在需要打开一个对话框时,则必须不能忽略当前的capaInstanceID,否则对话框就无法操作当前所依托的主page进行互操作了。
confirm
类型:string
缺省值:
执行前先弹出一个对话框,要求用户确认。
prompt
类型:string
缺省值:
执行前先弹出一个提示输入框,要求用户根据提示,在输入框中输入。
这些用户的输入,将作为promptInput变量的值发送给capaInstance,然后就可以在响应函数中获取到了:
input_data = capaInstance.getInput('promptInput')
primary
类型:bool
缺省值:false
disp其它页面时,是否显示到主显示区。应设置为:primary=true。
dispInDialog
类型:bool
缺省值:false
disp一个对话框页面时,必须设置为true。
上述三个属性都是用来控制如何正确显示一个page的:
- 在其它tab显示一个主page:ignoreCapaid=true,primary=true
- 在本tab显示一个对话框:dispInDialog=true
如果是要执行一个cmd,则这三个属性都不需要设置。
params
类型:json
缺省值:
按钮执行motion时一并提交的静态参数。应为json对象。
这些静态对象其后可以在事件响应函数中用getInput读取。
require
类型:json
缺省值:
params提交的是预先定义后的静态参数,但有时还需要动态参数。如查询设备,然后点击查看某设备的详情。这时就需要根据动态设置被点击的那一行的设备ID。
require就是用来收集当前环境中,所指定参数的当前值的。
其为一个json数组,每个元素都是一个字符串形式的变量名,指示了所需要提供的参数名。如:
require.(['devType', 'devName'])
就是要求按钮被点击后,收集当前环境下的devType、devName两变量的当前值。
如果按钮是定义在容器表中的,则当前环境就是整个页面,devType、devName就是两个输入控件,如查询条件中所定义的。
如果按钮是定义在数据表的列中,则当前环境就是按钮所在行,devType、devName就是数据表中的两列在按钮所在行的对应列的数据。