动态:更新几篇工作中ligerUI的文章。
目的:记录、累积经验;既作自己收藏、同也分享大家。
归档:最近几篇博客全部归档在《LigerUI—工作随记》中,方便查阅哈
博客中不更新控件js使用,因为都用具体的教程demo和api。稍后上传博客中~
在此写一些工作中使用,在api中没有找到,或没有在明显地方。
今天核心:LigerUI中combox级联操作,第二个combox返回空串
Demo:
第一个combox查询部门的树形结构。第二个combox显示部门下所有的员工。
级联事件:
combox的onSelected或onBeforeSelect事件。
$.ajax({ url : "/ibpe/departadduser/selectUsersByDepartID.do?", dataType : "json", type : "post", data : { "presid" : depart }, success : function(data, msg) { liger.get("realname").setData(data); }, error : function() { $.ligerDialog.error("查询用户信息失败"); } });但是:若data为空,即使使用:liger.get("realname").setData(data); 赋值,打印realname combox的数据源为null,但是显示combox下拉框文本依然保留 上次 显示的数据源。
即使想法设法:liger.get("realname").data=null; liger.get("realname").data=“”liger.get("realname").data=“[]”
结果统统不可以。
按理说,赋值给null,就可以了,到底怎么回事?
分析部门源码如下:
setData: function (data) { var g = this, p = this.options; if (!data || !data.length) return; if (g.data != data) g.data = data;看这段代码,可以发现,怪不得,若返回空时,保留上次的数据文本呢。
if (!data || !data.length) return; 当data.length=0时,竟然return了。
因此,if (g.data != data) g.data = data,这说明,对象.data 或setData方法是可寻的,只不过有上面的前提而已。
那怎么办,一改源码。【这个不足为奇,毕竟ligerUI是个人的作品,不过即使有小 bug,还是蛮令人佩服的哈】
二:另谋出路。
哦,对了,既然保留上次的问题,那就随他所愿,只要用户看不见就行。
ok,目的有了,寻方法,清空的方法。既然data=null 不可以,肯定有有一种表面清除的方法。
虽然api中没有此方法,不过通过查找其源码,嘻嘻,发现喽**clearContent()
OK,目的到底了。过程如下:
success : function(data, msg) { if(data.length==0){ loginname.clearContent(); }else{ liger.get("realname").setData(data); } }