1

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

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

我已经获得了使用基本文本和 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>);

}

提前致谢!

4

2 回答 2

2

You could try wrapping your #xmlString# in JSStringFormat()

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

I would look at the XML Syntax documentation on how the XML should be structured.

You would need to write a custom function to take a query and convert it over to the XML Syntax that the dhtmlx is expecting.

于 2013-03-19T21:35:01.063 回答
2

除了 Abbottmw 的jsStringFormat建议之外,请注意他将 ColdFusion 输出用引号括起来,这些引号是必需的,但您的代码中没有这些引号。

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

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

确实。从 JSON 加载说明:

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

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

于 2013-03-20T10:40:01.240 回答