easyui

问题1:

datagrid显示出来了,json文件成功下载,但datagrid数据没有显示,如下图

删除自己的css文件里的table{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)就好了。

待续。。。

原文地址:https://www.cnblogs.com/yigeqi/p/3786118.html