【发布时间】:2010-07-20 08:19:59
【问题描述】:
我有一个 visualforce 页面,我正在使用 jqgrid 在此页面上显示数据。 jqgrid 指向的 url 是一个仅输出 JSON 数据的 visualforce 页面(https://test.visual.force.com/apex/GridResults)。此页面没有任何标题或 html 信息。
问题是,当我运行此页面时,网格呈现列名但没有数据。 当我运行 url 时,它会输出 JSON 数据。我已经粘贴在代码下面了。
jQuery("#list").jqGrid({
url:"https://test.visual.force.com/apex/GridResults",
datatype: "json",
colNames: [{!fieldNames}], -- property in controller which outputs fieldnames
colModel: [{!colModel}], -- property in controller which outputs column definition
rowNum: 10,
rowTotal:10,
rowList: [20, 40, 60],
loadonce:true,
mtype:"GET",
gridView:true,
pager: '#pager',
sortname: 'Record ID',
sortorder: "desc",
width: 1200,
height: 400,
caption: "Accounts"
});
jQuery("#list").jqGrid('navGrid', "#pager", { edit: true, add: true, del: false })
};
关于为什么页面中的数据不被 jqgrid 消耗的任何想法?非常感谢您的帮助。
【问题讨论】:
-
您可以尝试调试 javascript(即使用 Firefox 插件“Firebug”或 IE 只需在 javascript 中的某处放置“debugger;”语句)吗?使用 Firebug,您应该能够检查标头(如果有)并确定数据是否实际到达。另外 - jqgrid 如何处理 MIME 类型?也许它需要“application/json”而 Salesforce 输出“text/html”?
-
还有一个:你确定你不需要“jsonReader”或类似的东西吗?查看trirand.com/jqgridwiki/… 的示例和警告,您的 JSON 是否符合要求的格式?
-
感谢您的回复眼霜。好点,我还没有检查过 MIME 类型。现在,我通过使用 apex:actionFunction 调用 visualforce 控制器来解决问题。返回数据时,我构建一个数组并将其传递给 jqgrid!目前工作正常。
标签: model-view-controller jqgrid visualforce