attachmentSimple如何控制上传个数

attachmentSimple组件平台默认没有提供控制上传个数的属性,可以判断已上传的文件控制控制上传按钮不显示实现 控制上传按钮不显示,可以在上传按钮对应的元素的visible上设置,默认设置的是visible:$state.get() == 'upload' 可以再用js中表达式的语法用&&拼接上个数的控制,如下是控制上传3个后上传按钮就不显示了

list中的如何实现类似与grid的全选

grid中可以通过设置multiselect属性实现多选和全选/全取消 list中没有这样的属性要实现多选需要自己在行中放checkbox 要实现全选/全取消需要在list外放一个checkbox,通过这个checkbox的选择和取消选择控制list中所有行的checkbox都选择或都取消选择 具体实现如下: 1.data中定义一列如:checkCol 2.在list中添加checkbox设置bind-ref为checkCol 3.设置checkCol的checkedValue为1,uncheckedValue为0 4.在list外面放一个checkbox,在这个checkbox的onChange事件中判断是选择或取消,遍历data控制checkCol的值为1或0 Model.prototype.checkbox1Change = function(event) { var data = this.comp("data1"); if (event.checked) { data.each(function(param) { param.row.val("checkCol", "1"); }); } else { data.each(function(param) { param.row.val("checkCol", "0"); }); } }; [...]

popPicker组件如何获取选择的值

popPicker组件是内置的picker组件,获取值可以通过获取内置picker组件,调用picker组件的API获取 popPicker组件在点确定的时候会触发onOK事件,因此可以在onOK事件中获取值 需要注意的是popPicker中可以添加多个picker显示多列不同的数据进行选择,所以在获取值的时候需要注意区分不同的picker获取对应列的数据 如下:通过判断popPicker中picker的xid不同获取对应的列值 Model.prototype.popPickerOK = function(event){ var innerPickers = event.source.getInnerPickers();//获取内部的picker组件对象数组 for(var i=0;i<innerPickers.length;i++){ //根据picker组件的xid获取对应的列数据 if(innerPickers[i].$domNode.attr("xid") == 'list1'){ var fClass = innerPickers[i].getSelectedItem().val("fClass"); } else if(innerPickers[i].$domNode.attr("xid") == 'list2'){ var fDate = innerPickers[i].getSelectedItem().val("fDate"); } } };

listTable组件设置父点击行的样式

listTable组件,默认父的list点击行是控制下面的子显示或者隐藏,如果要同时设置父的样式,需要重写tr上的bind-click 具体如下实现: 1.定义一个class样式如下: .x-currentRow{ background-color:red !important; } 2.重写父list上的tr(info)的bind-click事件,如下: Model.prototype.tr2Click = function(event) { var $e = $(event.currentTarget); $('>td>i.x-expand-i', $e).toggleClass(''); $e.parent().find('td').removeClass('x-currentRow') $e.find("td").addClass('x-currentRow'); $e.next().toggleClass('hide'); }; 显示的效果是点击父上的行时除了控制子的显示或者隐藏,同时当前点击行的背景色是红色(只有点击行是红色,在切换点击行时其他行的样式会被删除)

第三方集成时不用密码通过.j登录后直接调整到x5首页

平台默认的登录是需要用户名和密码,另外提供了不用密码登录的action(ntLoginAction) 第三方集成不用密码登录可以调用时ntLoginAction实现,然后把登录产生的bsessionid放到Cookie中,打开首页的时候默认就会找Cookie中的bsessionid .j的具体实现如下: import java.io.IOException; import java.sql.Date; import java.util.HashMap; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.justep.biz.client.Action; import com.justep.biz.client.ActionEngine; import com.justep.biz.client.ActionResult; import com.justep.biz.client.ActionUtils; import com.justep.ui.JustepConfig; public class Login extends com.justep.ui.impl.JProcessorImpl [...]

如何判断controlGroup是展开还是收缩状态

controlGroup组件点击title部分可以控制controlGroup展开或收缩状态的 展开或收缩状态是通过给组件添加class样式控制的,因此要判断状态可以通过判断是否有这个class样式实现 如下: $(this.getElementByXid("controlGroup1")).hasClass("x-collapsed"); 返回true就是折叠,false就是展开 controlGroup1是controlGroup组件的xid

js中如何获取流程模版中修改的当前环节显示名称

js中平台默认提供了this.getContext().getActivityLabel()可以获取当前activity显示名称 但是这个获取到的是process文件中定义的名字,获取不到流程模板中修改的名字 要获取流程模板中修改的名字需要调用action的方式,把当前任务的ID传给action,做参数到SA_Task中查询数据 如下:action中定义一个task的参数,action对应的java代码的定义 public static String getModActivityName(String task){ String ksql = "select task.sActivityName from SA_Task task where task = '"+task+"'"; Table table = KSQL.select(ksql, null, "/system/data", null); String sActivityName = ""; if(table.size()>0){ Row [...]

input组件如何实现放百度和谷歌智能搜索

要实现智能搜索可以集成jquery的autocomplete插件 下载jquery插件 把插件放到功能目录下然后,在.w的window组件上右键添加插件的js和css文件引用如下: <resource xid="resource2"> <require xid="require1" url="css!$UI/appdemo/test/process/input/jquery/jquery-ui"/> <require xid="require2" url="$UI/appdemo/test/process/input/jquery/jquery.ui.core"/> <require xid="require2" url="$UI/appdemo/test/process/input/jquery/jquery.ui.position"/> <require xid="require2" url="$UI/appdemo/test/process/input/jquery/jquery.ui.widget"/> <require xid="require2" url="$UI/appdemo/test/process/input/jquery/jquery.ui.autocomplete"/> </resource> 在model的onLoad事件中给要显示智能搜索的input框设置autocomplete 如下: Model.prototype.modelLoad = function(event) { var id = this.getIDByXID("input1"); var [...]