EasyUI combobox 加载JSON数据

本文介绍如何将JSON数据格式转换并加载到ComboBox中显示。通过两种方法实现:使用$.getJSON进行异步请求处理和使用$.ajax进行POST请求处理。示例展示了如何配置所需的URL及字段。

Action返回 JSON 格式如下:

jsonResult = 
{
  total=7,rows=[
     {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, 
     {TEXT=开发部, ID=402894ca4419acf1014419beb1bc0001}, 
     {TEXT=实施, ID=4028e439476b55be01477bbf0fab0000}, 
     {TEXT=技术支持, ID=4028e439476b55be01477bbfb80e0001},
     {TEXT=客户服务, ID=4028e439476b55be01477bc015a80002}]
}

json中包含 totalrows,我们需要rows下面的内容来显示在combobox中,API规定必须用下面格式的json:

[{  
    "id":1,  
    "text":"text1"  
},{  
    "id":2,  
    "text":"text2"  
},{  
    "id":3,  
    "text":"text3",  
    "selected":true  
},{  
    "id":4,  
    "text":"text4"  
},{  
    "id":5,  
    "text":"text5"  
}]

官方给出了一个示例

$('#cc').combobox({  
    url:'combobox_data.json',  
    valueField:'id',  
    textField:'text'  
}); 

一直不明白只需一个url 如何返回数据?百思不得姐

以下是两种解决方法

第一种:
var url = "admin/FrmQueryAllGroup.do";
$.getJSON(url,function(json) {
    $('#cc').combobox({
        data: json.jsonResult.rows,
        valueField: 'ID',
        textField: 'TEXT'
    });
});
第二种:
$.ajax({
    type: "POST",
    url: 'admin/FrmQueryAllGroup.do',
    dataType: "json",
    success: function(json) {
        $('#cc').combobox({
            data: json.jsonResult.rows,
            valueField: 'ID',
            textField: 'TEXT'
        });
    }
});

注:jsonResult 为Action中返回值,rows 为 jsonResult 中的属性

struts.xml

<package name="FrmTaskUser_Ajax_code" extends="json-default">
    <action name="FrmQueryAllGroup" method="queryAllGroup"
        class="org.bkgd.autoform.web.action.ActionTaskuserFormQuery">
        <result type="json"></result>
    </action>
</package>

转载于:https://www.cnblogs.com/huangf714/p/5898887.html

easyui combobox 中添加空选项有多种方法,以下结合参考内容为你详细介绍: ### 使用 unshift 或 push 方法 可以在获取数据后,使用 `unshift` 方法将空选项添加到数据数组的开头,或者使用 `push` 方法将其添加到数组的末尾,然后使用 `loadData` 方法加载数据。示例代码如下: ```javascript $.post('Handler/Handler.ashx', { m: 'getlist' }, function (msg) { // 添加空选项到第一行 msg.unshift({ "text": "", "value": "" }); // 添加空选项到最后一行 // msg.push({ "text": "", "value": "" }); $("#ddlSYSV").combobox('loadData', msg); }); ``` 上述代码使用 `$.post` 从后台获取数据,在回调函数里给数据加上空选项行,再用 `combobox` 的 `loadData` 方法加载数据,添加到第一行用 `unshift` 方法,添加到尾行用 `push` 方法 [^4]。 ### 插入默认选项 使用 JavaScript 代码将默认的空选项插入到数据数组的前面,然后使用 `loadData` 方法加载数据。示例如下: ```javascript data.unshift({text:"",value:"",selected:"true"}); $("#Area").combobox('loadData',data); ``` 这里将一个空选项对象插入到 `data` 数组的最前面,然后使用 `loadData` 方法加载数据 [^3]。 ### 结合 AJAX 请求添加 通过 AJAX 请求获取数据,在成功回调函数中修改返回的数据,添加空选项,然后重新初始化 `combobox`。示例如下: ```javascript $.ajax({ url: '远程地址', dataType: 'json', success: function(jsonstr){ // 添加空选项 jsonstr.unshift({ 'name': '', 'version': '' }); $('#test').combobox({ data: jsonstr, valueField: 'version', textField: 'name', filter: function(q, row){ var opts = $(this).combobox('options'); return row[opts.textField].toLowerCase().indexOf(q.toLowerCase()) >= 0; } }); } }); ``` 此示例使用 `$.ajax` 从远程地址获取 JSON 数据,在成功回调函数中添加空选项,然后重新初始化 `combobox` [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值