我希望能为这个伟大的产品推进正确的方向。
我想要做的是运行查询或存储过程,获取结果数据集,然后将结果格式化以便在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>);
}
提前致谢!
答案 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中的array
从toScript
加载。
但是,有没有办法获取查询结果并传递它们 直接到dhtmlxGrid直接而不必将数据写入 文件,然后阅读它?
当然。 从JSON加载说明:
从远程文件加载数据(静态JSON文件或任何类型的 将生成json输出的脚本)应使用以下代码字符串:
这意味着可以动态生成json输出的简单的.cfm或.cfc(推荐)页面。例如,如果您使用带有名为dhtmlxJSON的函数的CFC,则可以在网格中将其命名为。 grid.load("myJsonGenerator.cfc?method=dhtmlxJSON","json");