easyui
问题1:
datagrid显示出来了,json文件成功下载,但datagrid数据没有显示,如下图
删除自己的css文件里的table{width:100%;}后恢复正常
问题2:
<table class='easyui-datagrid' ....></table>
在页面加载完成后再添加url属性:
$(function(){ $('#table1').datagrid({url:'json/sss'}); })
debug发现后台查询了两次,url放在<table>节点里则只执行一次。
删除<table>中的 class='easyui-datagrid'后恢复正常。
(combotree却没有这种现象)
现象3:
用js加载的easyui控件(如用jquery的.load()页面里含控件),没有被解析成easyui的样式。
添加$.parser.parse('#控件Container');后恢复正常(不带参时会解析当前页面里所有的easyui控件,为了效率,慎用)。
现象4:
如何一次性设置某类控件的共同的属性等?
利用$.fn.控件类名.defaults,
如日期选择控件统一显示yyyy-mm-dd格式:
$.fn.datebox.defaults.formatter=function(date){ var y=date.getFullYear(); var m=date.getMonth()+1; var d=date.getDate(); return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d); }
问题5:
$(function(){})里对linkbutton设置disable无效,$.parser.parse()后生效。
问题6:
某页面中有一个datagrid1(对应节点id='table1'),点击某个东西运行函数opendlg()弹出一个dialog(对应节点id='dlg'),
在这个dialog中也有一个datagrid2(对应节点id='table2'),关闭datagrid2时要刷新datagrid1.
原始代码:
function opendlg(){ $('#dlg').dialog({ title:'mytitle', url:'a.jsp?id='+id, buttons:[{ text:'Close', iconCls:'icon-close', handler:function(){$('#dlg').dialog('close');} }] }); $('#dlg').dialog('open'); $('#dlg').dialog({ onClose:function(){$('#table1').datagrid('load');} }); }
结果在点击某个东西的第一次以后会报错:"can't read options of 'undefined'",提示的关于datagrid的options。
修改代码:把dialog的onClose放进第一个$('#dlg').dialog({})里,与title、url、buttons并列,再次运行不在提示出错。
问题7:
某textarea有两条验证规则:<textarea class='easyui-validatebox' validtype='length[0,50] required='true' invalidMessage='长度不得超过50'</textarea>
先有两个按钮:按 “保存” 时只要验证length不超过50,按 “提交” 时两个都要验证。
开始的想法是获取options,设置它的required属性为false。结果提示:“Object #<Object> has no method 'options'” ,发现项目里easyui的版本是1.3.2,居然不支持'options'方法。
用下面这个办法就可以了:$("[required='true']").validatebox({required:false}) (这不会影响节点required特性的值,所以能在 “提交” 时再设置$("[required='true']").validatebox({required:true})。使用$().attr('required','false')的方法无效。
但这个页面里同时有一个日期控件:<input class='easyui-datebox easyui-validatebox' required='true' id='date1'>,
上面的方法对它无效,在 “保存” 时仍会验证它,设置$('#date1').datebox({required:false});后取消了验证。
问题8:
针对validator编写自己的验证规则时,验证名称不要以数字结尾。如自定义了一个验证名称:length3,则提示js出错,无法验证,把名字修改为lengthnew则正常了。
问题9:
有个addTab方法,用于给#mainC替换tab页(每次只显示一个tab页)。
function addTab(title,url){
var mainC=$('#mainC'); mainC.tabs('close',0);
mainC.tabs('add',{title:title,href:url,closable:true});
}
一个含datagrid的页面被addTab到#mainC,单击datagrid里的某格时,onClickCell时再addTab另一个页面。问题是每次click则报错‘cannot read property 'dc' of undefined’,如果是在事件里ajax提交,在success事件里addTab,则不报错。
最后在onClickCell事件里修改为setTimeout(function(){addTab('mytitle','a.jsp')},1)就好了。
待续。。。