首先,在使用 Ajax 时,您不需要从服务器返回 XML,您可以返回纯文本、XML、JSON 字符串,以及您想要的任何形式的文本数据。此处提供了一个使用 JSON 数据填充 Datatable 的示例:
http://developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html
此处提供了如何使用 Ajax 和 YUI 发送发布请求的示例。
http://developer.yahoo.com/yui/examples/connection/post.html
这应该让你开始,现在只需将它们链接在一起。
要连接到服务器,您可以使用 Yahoo.util.Connect.asyncRequest 方法,该方法接受以下参数:
static object asyncRequest ( method , uri , callback , postData );
在此处查看示例,此示例使用“GET”,因此您可以使用“GET”或“POST”,只需确保传入参数
http://developer.yahoo.com/yui/examples/json/json_connect.html
一旦您的函数在您的“onSuccess”上返回,请执行以下操作以将响应文本解析为 JSON
try {
jsonData = YAHOO.lang.JSON.parse(o.responseText);
}
catch (x) {
alert("JSON Parse failed!");
return;
}
“jsonData”对象现在包含您的数据,所以现在您可以按照以下示例进行操作:
http://developer.yahoo.com/yui/examples/datatable/dt_basic.html
它向您展示了如何使用保存数据源的本地对象初始化数据表。基本上是这样的
var myColumnDefs = [
{key:"Column1Data", label:"Column1 Header" sortable:true, resizeable:true},
{key:"Column2Data", label:"Column2 Header" sortable:true, resizeable:true}
];
var myDataSource = new YAHOO.util.DataSource(jsonData);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
myDataSource.responseSchema = {
fields: ["Column1Data","Column2Data"]
};
var myDataTable = new YAHOO.widget.DataTable("basic",
myColumnDefs, myDataSource, {caption:"DataTable Caption"});
为此,您必须在 HTML 代码中有一个 id 为“basic”的“div”容器,注意这与 DataTable 上的第一个参数匹配
希望这可以帮助