Title: 对 easyui 1.4 的试用反馈 Post by: iamjxc on August 02, 2014, 07:36:30 AM 1.4 版悄然发布, 感谢作者的不懈努力. 原来 stworthy 不回答问题, 是忙着开发 1.4 去了. ;D
经过一天的尝试, 基本把 1.4 集成到项目里, 下面是我的试用体会. 1.4 新特性 textbox 的出现太赞了, 终于统一了 form 里各个元素的外观样式 而且整合了 prompt 和 button , textbox 似乎是从 searchbox 改造而来的? 各个控件获得焦点后, 边框有光晕效果, 还不错 filebox 也很赞, datetimespinner 正是我需要的, 不过今天没时间, 明天尝试用一下 combo 的 panelMaxHeight 属性, 我曾提过用css控制的方案, 不过这个对浏览器兼容更好些, 而且能够单独控制 required 必填项提示, 去掉了难看的惊叹号图标, 改用粉红色背景标识, 还不错 easyui 控件只读后, 背景色还是白色, 应把只读项与可编辑项目区分开, 如: input[readonly]{background-color: #f4f0f0;} 1.4 发布日志里没写, 实际测试已解决的: 在有 layout 的页面里打开一个fit=true 的 dialog, 则浏览器窗口缩放时 dialog 不缩放的问题已解决 1.4 新的问题和建议 textbox 在录入时, 回车执行查询操作, 但是值没有提交, 只有textbox失去焦点时才把值赋给 textbox-value 控件 我发现 datebox 的 onchange 是在输入时就触发的, 并且 keyHandler 支持 enter 建议 textbox 也统一编程模型, 统一控件的事件特性 我的临时解决方案, 自己写 keydown 处理 var text = el.textbox("getText"); el.textbox("setValue", text); filebox 在 chrome 里文字显示位置有问题, 向上错位了 必填项提示的国际化字符串有遗漏, 需要加入下面的 if ($.fn.textbox){ $.fn.textbox.defaults.missingMessage = '该输入项为必输项'; } combo-arrow 不应该获得焦点 在按tab键跳转时, 焦点先跳到combo-arrow上, 再按一次tab才进入combo-text, 操作麻烦 建议设置 combo-arrow 的 tabIndex=-1 combogrid 的高度似乎有问题, combogrid 的 padding 是 4px, 其它控件都是 2px padding-bottom: 4px; padding-top: 4px; combotree 仍然无法实现在 onlyLeafCheck=true 并且 checkbox=false 的情况下, 即单选时, 控制只能选择叶子节点 onlyLeafCheck 参数只是控制了多选时不生成复选框 而实际项目有这样的需求, 即用户不能选择分类, 只能选择叶子节点 datagrid 控件, 为什么行号显示 NaN 呢? 必须显式设置 pageSize: 30 才行, 也可能是其他参数冲突导致? textbox 初始化时, 如果 multiline = true , 并且没有设置 width 和 height 参数, 并且 target 是 textarea, 则建议取 textarea 的 height combobox 为了实现汉字拼音检索的支持, 我复写了 doQuery 方法, 但是 doQuery 里调用了 request 方法, 让我很受伤 if (opts.mode == 'remote'){ request(target, null, {q:q}, true); } request 方法没有暴露. 复写的 doQuery 里如何调用这个 request 呢? 我的方案是直接修改 easyui 1.4 压缩后的代码, 把 request 接口暴露出来. 通过下面的参考语句, 定位要修改的位置 查找到 .find("div.combobox-item,div.combobox-group").hide(); 往上找到下面的内容 if(opts.mode=="remote"){ _8f9(_8fe,null,{q:q},true); // 则 _8f9 就是request编译后的方法名 } 再找到 $.fn.combobox.defaults=$.extend({},$.fn.combo.defaults 往下找到 mode:"local",method:"post", 手工插入: request:_8f9, 这样, 就把 request 方法暴露出来, 然后在 doQuery 里就能调用 request 了 if (opts.mode == 'remote'){ $.fn.combobox.defaults.request(target, null, {q:q}, true); } 希望 stworthy 给一个更好的方案. ;D |