动态:更新几篇工作中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);
}
}