LigerUI中下拉框Combox级联操作中,后combox返回空串的问题

来源:互联网 发布:美工设计工作流程 编辑:程序博客网 时间:2024/05/23 01:14

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

原创粉丝点击