dhtmlx对XML或JSON的ColdFusion查询

时间:2013-03-19 19:55:51

标签: xml json coldfusion dhtmlx

我希望能为这个伟大的产品推进正确的方向。

我想要做的是运行查询或存储过程,获取结果数据集,然后将结果格式化以便在dhtmlxGrid中使用。我不需要将数据写回DB我只需要显示它们。

我已经让演示使用基本文本和xml文件

http://docs.dhtmlx.com/doku.php?id=tuto ...填充)

但是,有没有办法获取查询结果并直接将它们传递给dhtmlxGrid而不必将数据写入文件然后读取它?

我尝试过这样的事情:

var mygrid;
function doInitGrid(){

mygrid = new dhtmlXGridObject('mygrid_container');
mygrid.setImagePath("codebase/imgs/");
mygrid.setHeader("Model,Qty,Price");
mygrid.setInitWidths("*,150,150");
mygrid.setColAlign("left,right,right");
mygrid.setSkin("light");
mygrid.init();
mygrid.parse(<cfoutput>#xmlString#</cfoutput>);

xmlString是一个有效的XML对象,但网格格式不像这样。消息来源如下:

var mygrid;
function doInitGrid(){

mygrid = new dhtmlXGridObject('mygrid_container');
mygrid.setImagePath("codebase/imgs/");
mygrid.setHeader("Model,Qty,Price");
mygrid.setInitWidths("*,150,150");
mygrid.setColAlign("left,right,right");
mygrid.setSkin("light");
mygrid.init();
mygrid.parse(<?xml version="1.0" encoding="UTF-8"?>
<users columns="3" rows="3"><user fname="Nathan" id="292B71DC-9DDD-BA4F-    A95BF84F85CAF661" lname="Dintenfass"/><user fname="Ben" id="292B71DD-0893-326D-    79269A1DCFD46D37" lname="Archibald"/><user fname="Raymond" id="292B71DE-E781-43FE-    A4DCD955A1A5C044" lname="Jones"/></users>);

}

提前致谢!

2 个答案:

答案 0 :(得分:2)

您可以尝试在JSStringFormat()

中包装#xmlString#
mygrid.parse('<cfoutput>#JSStringFormat(xmlString)#</cfoutput>');

我会看看XML Syntax documentation如何构建XML。

您需要编写自定义函数来进行查询并将其转换为dhtmlx所期望的XML语法。

答案 1 :(得分:2)

除了Abbottmw的jsStringFormat建议之外,请注意他将ColdFusion输出包装在引号中,这些引号是您的代码中必需但缺失的。

如果XML不适合您,您可以使用使用ColdFusion SerializeJSON创建的JSON加载它,或者使用带有函数returnformat="JSON"和此JSON规范的CFC。 DHTMLX或使用ColdFusion中的arraytoScript加载。

  

但是,有没有办法获取查询结果并传递它们   直接到dhtmlxGrid直接而不必将数据写入   文件,然后阅读它?

当然。 从JSON加载说明:

  

从远程文件加载数据(静态JSON文件或任何类型的   将生成json输出的脚本)应使用以下代码字符串:

这意味着可以动态生成json输出的简单的.cfm或.cfc(推荐)页面。例如,如果您使用带有名为dhtmlxJSON的函数的CFC,则可以在网格中将其命名为。 grid.load("myJsonGenerator.cfc?method=dhtmlxJSON","json");