Easyui的setValue方法无效

今天在开发项目的时候,遇到第一个很奇怪的问题:EasyUI的setValue方法无效。

$('#department_parent').combotree('setValue', row.id);

 AjaxForProvince();
$('#province').combobox('setValue', row.province_id);
AjaxForCity(row.province_id);
$('#city').combobox('setValue', row.city_id);
AjaxForZone(row.city_id);
$('#zone').combobox('setValue', row.zone_id);
AjaxForDepartment(row.zone_id);
$('#department_parent').combotree('setValue', row.id);

  

上面的逻辑很简单,就是想在页面上加载完省份,加载市县级,加载完市县级加载区域级,加载完区域级,加载部门。

但是问题是,当我点击的时候,省份,市县级,区域级都能正常加载,但是加载到combotree的时候,总是闪一下正确的值后,框就变空了。

当时也不知道什么问题,网上搜索也没看到别人遇到过这种情况。即便是尝试将row.id改成普通的数字,仍然不行。

既然没有前车之鉴,那只能自己分析了。

既然在加载的时候,combotree会正确加载下拉列表,说明AjaxForDepartment这个方法是调用成功的。

但是加载到setValue的时候,会闪一下没了。就说明问题出在这里。并且极有可能和加载顺序或者说加载时长有关。

为什么呢?

由于js执行是单线程,但是在combotree内部我们无法得知其执行顺序,所以极有可能是

$('#department_parent').combotree('setValue', row.id);

先行执行,而AjaxForDepartment(row.zone_id);后续执行,这样就会造成上述问题。

抱着试试看的心态,更改代码如下:

AjaxForProvince();
$('#province').combobox('setValue', row.province_id);
AjaxForCity(row.province_id);
$('#city').combobox('setValue', row.city_id);
AjaxForZone(row.city_id);
$('#zone').combobox('setValue', row.zone_id);
AjaxForDepartment(row.zone_id);
setTimeout(function () { setTreeValue(row) }, 300); var setTreeValue = function (row) {
$('#department_parent').combotree('setValue', row.id);
}

然后运行,一切正常。

Combotree下拉绑定,显示undefined

第二个问题,是ComboTree绑定的时候,显示下拉项为undefined的问题。

我是利用combotree的推荐的绑定方式进行加载的:

$('#province').combotree({
url: '../handler/PermissionService.ashx?method=GetProvince',
method: 'post',
valueField: 'id',
textField: 'title',
onSelect: function (node) {
AjaxForCity(node.id);
}
});

这看上去似乎并没有什么问题,但是在我的机器上无论如何都无法显示出准确的数据出来。

最后被迫使用了另外一种方法:

var AjaxForDepartment = function (zoneID) {
ajax('../handler/PermissionService.ashx?method=GetDepartments&zoneID=' + zoneID, function (res) {
$("#department_parent").combotree({
data: eval(res)
});
}, function (a, b, c) { });
}

才将问题解决。虽然没有找到原因,但是我想这可能和中文编码字符集有一定的关系。

聊以此文,抛砖迎玉,希望能为你的开发带来参考。

Easyui Combotree问题及其相关的更多相关文章

  1. EasyUI ComboTree无限层级异步加载示例

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EasuUIDemoTree.a ...

  2. Jquery EasyUI Combotree和 EasyUI tree展开所有父节点和获取完整路径

    Jquery EasyUI Combotree展开所有父节点 Jquery EasyUI Combotree获取树完整路径 Jquery EasyUI tree展开所有父节点 Jquery EasyU ...

  3. Jquery EasyUI Combotree根据选中的值展开所有父节点

    Jquery EasyUI Combotree根据选中的值展开所有父节点  Jquery EasyUI Combotree 展开父节点, Jquery EasyUI Combotree根据子节点选中的 ...

  4. Jquery EasyUI Combotree 初始化赋值

    Jquery EasyUI Combotree 初始化赋值 ================================ ©Copyright 蕃薯耀 2018年5月7日 https://www. ...

  5. Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

    Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框 Jquery EasyUI Combotree单选框,Jquery EasyUI Combotree只能选择叶子节点 ...

  6. easyui combotree不让父级选中

    easyui combotree不让父级选中? <ul id="combotree"></ul> $(function () { $("#comb ...

  7. 表单(上)EasyUI Form 表单、EasyUI Validatebox 验证框、EasyUI Combobox 组合框、EasyUI Combo 组合、EasyUI Combotree 组合树

    EasyUI Form 表单 通过 $.fn.form.defaults 重写默认的 defaults. 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交.加载.清除,等等. ...

  8. easyui combotree 异步树 前端写法js

    简要说下使用场景: combotree下拉框第一次加载时,请求一个接口,页面上展示顶层节点们(可以理解为最顶层的节点,比如所有的一级公司): 当点击其中一个节点前面的小三角展开时,再次请求服务器接口( ...

  9. EasyUI Combotree只选择叶子节点

    EasyUI Combotree的方法拓展自Combo和Tree.而Tree有一个onBeforSelect事件来帮助我们实现只选择叶子节点的功能. Tree事件需要 'node' 参数,它包括下列属 ...

随机推荐

  1. 【原】UI随设备旋转从iOS6到iOS8的适配策略

    - (void)statusBarOrientationChange:(NSNotification *)notification { WClassAndFunctionName; UIInterfa ...

  2. iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解

    一.概要:前一篇初步的描述了size class的概念,那么实际中如何使用呢,下面两个问题是我们一定会遇到的: 1.Xcode6中增加了size class,在storyboard中如何使用? 2.a ...

  3. iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题

    在一些场景中,需要限制用户的输入字数,例如在textField里进行控制(textView也类似,崩溃原因也相同),如图所示 系统会监听文本输入,需要注意的第一点是输入法处于联想输入还未确定提交的时候 ...

  4. iOS之 APP异常捕获反馈给服务器

    在我们开发的app中, 不可避免的, 有时候用户使用软件会崩溃.  我们就需要捕获异常, 可以在入口类中加入相应的代码, 可以在每次用户打开程序的时候, 检查一下沙盒中是否有崩溃日志, 如果有, 可以 ...

  5. iOSQuartz2D-03-定制个性头像

    效果图 将一张图片剪切成圆形 在图片周围显示指定宽度和颜色的边框 实现思路 效果图中主要由不同尺寸的两大部分组成 蓝色的背景区域,尺寸等于图片的尺寸加上边框的尺寸 图片区域,尺寸等于图片的尺寸 绘制一 ...

  6. 多线程基础(六)GCD基础

    更多值得学习的GCD知识,可以学习: Grand Central Dispatch (GCD) Reference GCDObjC 1.GCD的基本概念     什么是GCD 全称是Grand Cen ...

  7. nginx安装过程,报错处理:make[1]: *** [objs/addon/src/bson.o] Error 1

    nginx安装过程中,经常会有各种错误: 具体安装步骤这里不做说明,网上一搜大把: 主要分析安装过程中遇到的问题 在make编译的时候,若报如下错误: cc1: warnings being trea ...

  8. 每日Scrum--No.5

    Yesterday:学习并编写代码 Today:组织小组开一次阶段性的总结会议:讨论需求分析中存在的问题:继续学习和编写代码:总结前阶段代码出现的问题 Problem:编程要注意很多的特殊情况,程序成 ...

  9. Mac OS X 快捷键

    启动快捷键 按下按键或组合键,直到所需的功能出现(例如,在启动过程中按住 Option 直到出现“启动管理程序”,或按住 Shift 直到出现“安全启动”).提示:如果启动功能未起作用,而您使用的是第 ...

  10. mod_rewrite

    一.简介 http://www.07fly.net/a/wangluobiancheng/Phpbiancheng/201501/58393.html   二.实现原理:       只有当用户的WE ...