我正在尝试将一个ColdFusion查询输出到JSON,以便它可以与jQuery EasyUI (特别是一个数据)一起使用。
从.json附带的EasyUI文件示例来看,这是他们正在寻找的格式.
{"total":2
, "rows":[
{ "productid":"FI-SW-01"
, "productname":"Koi"
, "unitcost":10.00
, "status":"P"
, "listprice":36.50,"attr1":"Large"
, "itemid":"EST-1"
}
, { "productid":"K9-DL-01"
, "productname":"Dalmation"
, "unitcost":12.00
, "status":"P"
, "listprice":18.50
, "attr1":"Spotted Adult Female"
, "itemid":"EST-10"
}
]
}然而,当我在一个SerializeJSON(emails)查询中使用ColdFusion时,我得到如下信息:
{ "COLUMNS":["CUSTOMERID","CUSTOMERFIRSTNAME"]
, "DATA":[
[101,"Bhavin"],[102,"Frank"]
]
}这似乎没有得到EasyUI的认可,所以我猜问题是:(1) EasyUI是否应该能够识别并处理来自ColdFusion的输出,如所示,或者(2)是否有一种方法可以使ColdFusion以类似于EasyUI示例中包含的格式输出JSON?
更新:
如果我使用serializeQueryByColumns参数,情况就是这样:
{ "ROWCOUNT":83
, "COLUMNS":["CUSTOMERID","CUSTOMERFIRSTNAME"]
, "DATA":{
"CUSTOMERID":[101,102]
,"CUSTOMERFIRSTNAME":["Bhavin","Frank","]
}
}尽管如此,EasyUI仍未识别。在他们的文档中,他们展示了一个类似于下面的php示例,所以我想我将尝试用ColdFusion复制它的输出:
$rs = mysql_query('select * from users');
$result = array();
while($row = mysql_fetch_object($rs)){
array_push($result, $row);
}
echo json_encode($result);谢谢!
发布于 2014-03-05 01:18:49
数据集的loadFilter函数可以将任何数据转换成标准的数据格式,这些数据格式可以加载到数据集中。
<script>
var data = { "ROWCOUNT":83
, "COLUMNS":["CUSTOMERID","CUSTOMERFIRSTNAME"]
, "DATA":{
"CUSTOMERID":[101,102]
,"CUSTOMERFIRSTNAME":["Bhavin","Frank"]
}
};
function myLoadFilter(data){
var result = {total:data.ROWCOUNT};
var rows = [];
var count = data.DATA[data.COLUMNS[0]].length;
for(var i=0; i<count; i++){
var row = {};
$.map(data.COLUMNS, function(field){
row[field] = data.DATA[field][i];
})
rows.push(row);
}
result.rows = rows;
return result;
}
</script>数据组件可以声明为:
<table class="easyui-datagrid" title="Basic DataGrid" style="width:700px;height:250px"
data-options="
singleSelect:true,
collapsible:true,
data:data,
loadFilter:myLoadFilter
">
<thead>
<tr>
<th data-options="field:'CUSTOMERID',width:100">CUSTOMERID</th>
<th data-options="field:'CUSTOMERFIRSTNAME',width:200">CUSTOMERFIRSTNAME</th>
</tr>
</thead>
</table>此示例可从http://jsfiddle.net/d8zYy/获得。
发布于 2014-03-04 14:51:17
它看起来不像是EasyUI DataGris将接受数据的自定义格式(这是一个遗憾,因为数据集看起来非常好,除此之外)
将CF查询转换为EasyUI的正确格式应该是简单的:
<cfloop query='myQuery'> )我开始怀疑写上面的清单只需要写实际的功能.
https://stackoverflow.com/questions/22174567
复制相似问题