data组件中的字段通过感知另一个data组件的字段值进行自动赋值
通过两个data组件的管理字段,比如外键,获取关联data组件相应行的对象,然后获取某个字段的值赋值给当前行字段的计算列(计算规则 return 这个值即可) 案例下载
通过两个data组件的管理字段,比如外键,获取关联data组件相应行的对象,然后获取某个字段的值赋值给当前行字段的计算列(计算规则 return 这个值即可) 案例下载
事件分为两种,一种是on开头的事件,比如button组件的onClick ,另一种是bind-事件 on事件 都是为组件定义封装的事件!是X5自己封装的,获取组件对象的方法是 event.source 获取dom对象的一个数组方法 : event.source.$domNode bind-事件中获取当前dom的方法是: event.currentTarget 这个就属于标准的js事件了!
主要的做法思路就是!通过鼠标选中div拖动,并且和其他div碰撞的时候,交换两个div 对应的data组件的行!或者是冒泡排序的方式依次换行实现: 代码可以参考下:http://bbs.wex5.com/forum.php?mod=redirect&goto=findpost&ptid=82687&pid=165198909 另外data组件存储行对象的数组可以直接通过this.comp('data').datas获取到 参考:http://docs.wex5.com/wex5-ui-question-list-2046/
添加一个样式: box-shadow:none;
比如: var scrollVeiw = this.comp('ScrollView'); scrollVeiw.noMoreLoadLabel = '加载完成'; scrollVeiw.refresh(); 变量的名字可以看源码:/UI2/system/components/justep/scrollView/scrollView.js 分别是: this.pullDownLabel = "下拉刷新"; this.pullDownMoveLabel = "松开刷新"; this.pullDownLoadingLabel = "加载中...."; this.pullUpLabel = "加载更多"; this.pullUpMoveLabel = "释放加载"; this.pullUpLoadingLabel = "加载中...."; this.noMoreLoadLabel = "已经到最后."; [...]
1.x5组件提供的API文档方法: var input = this.comp('组件xid'); input.removeClass('b'); input.addClass('a'); 2.获取dom对象动态修改style属性!关于js动态修改style属性可以自己上网搜下 比如 this.getElementByXid('button1').style.visibility = 'visible'; 3.x5组件提供的API文档方法:setCSS 比如: this.comp("row1").setCSS({"background-color":"red"}); 4. query提供的样式修改方法:http://www.cnblogs.com/mengdd/p/4260577.html 5.KO对象实现样式的动态绑定效果 :http://docs.wex5.com/wex5-ui-question-list-2102
1.如果使用的是baasData组件,参考:/UI2/demo/baas/masterDetail/index.w 设置从表data的master属性为外键的字段就可以了! 2.如果是data组件,就需要手动写代码实现!当选择主表data某一行数据的时候,使用代码data.setFilter('filter',"外键字段='主表data的当前行ID列'"); 并执行data.refreshData(); 3.如果使用的是list 或grid 组件实现前端过滤显示!不请求后台!可以通过设置组件的filter属性!每一行的外键字段等于主表当前行id的值即可!比如案例:/UI2/demo/tuniu/index-purpose.w 代码 : $row.val("fOneID")==$model.comp('placeOneData').val("fID") 4.还可以list嵌套显示,不过数据量大的情况下,不建议使用list嵌套显示!效率会比较低http://docs.wex5.com/wex5-ui-question-list-2005/
正常执行data刷新的时候!autoLoad 设置为true 或者 调用data.refreshData() 方法的时候,默认会把数据切换到第一行!当前行就是第一行数据 但是如果没有执行刷新!而是直接使用loadData 方法加载数据,就会造成当前行不存在,这个时候,可以做一下操作 1.data.coutn() 是多少!要保证大于0 2.可以执行下data.first()方法,这个时候就切换到第一行显示了!
主要代码: var grid = this.comp("grid1"); grid.setGridParam({sortname:"字段",sortorder:"desc"}); grid.refresh();
require的加载机制就是先全部扫描一遍。所有,如果写在头部,肯定是预先加载的!如果想做使用的时候再去加载!可以如下,这样通过if判断就能实现是否执行此代码! require([ "./js/data" ], function(data) { //你的逻辑 });