我有一个绑定到YUI数据源的YUI数据表,它需要在几秒钟后自动刷新,也需要通过按钮手动刷新。虽然我可以通过本地数据源(在同一页中声明的数据源)读取数据,但我无法远程读取。即使以设置的间隔对目标页(yui_Data.cfm)发出请求,网格仍保持"数据加载…"。源代码如下:
yui_data.cfm(用于测试)的源代码如下:
{ "records": [ {"id": 31, "name":"4fruit", "price":8323, "number":231} ] }
请求数据页面的源代码:
myDataSource = new YAHOO.util.XHRDataSource("yui_data.cfm?");
myDataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
myDataSource.responseSchema = {
resultsList: "records",
fields: [
{key:"id", parser:"number"},
{key:"name"},
{key:"price",parser:"number"},
{key:"number",parser:"number"}
]
};
myDataTable = new YAHOO.widget.DataTable("dynamicdata", myColumnDefs, myDataSource);
myCallBack = {
success: myDataTable.onDataReturnSetRows,
failure: function() {
},
scope: myDataTable,
argument: myDataTable.getState()
}
myDataSource.setInterval(5000, null, myCallBack);
以上示例仅适用于myDataSource=new YAHOO.util.XHRDataSource("yui_data.cfm?");更改为:myDataSource=new YAHOO.util.XHRDataSource(YAHOO.data.sample);//作为一个例子!
我设法解决了这个问题,方法是在之前的JSON输出中使用ResultSet和Result,然后修改响应模式resultList以从该路径读取。