[英]YUI: Filter a datatable client-side
我有一個從服務器獲取數據的數據源。 然后在數據表中使用它。 我希望能夠過濾表客戶端中的數據,而無需再次調用服務器。
// Data source definition
myDataSource = new YAHOO.util.DataSource("myurl");
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSource.connXhrMode = "queueRequests";
myDataSource.responseSchema = {
resultsList: "ResultSet.Result",
fields: ["field1","field2"]
}
// Datatable definition
myDataTable = new YAHOO.widget.DataTable("container", myColumnDefs,myDataSource, {});
子類化DataSource並重寫sendRequest方法,以便您使用自己的過濾結果集作為results
參數來調用傳入的回調。
filterDataSource=function(arg) {
filterDataSource.superclass.constructor.call(this,arg);
}
YAHOO.extend(filterDataSource,YAHOO.util.XHRDataSource);
filterDataSource.prototype.sendRequest=function(request, callback) {
var wrapCallBack=function (request,results,error) {
// !!! do filtering on results here !!!
callback.success.call(this,request,results,error);
};
filterDataSource.superclass.sendRequest.call(this,request, {
success: wrapCallBack, argument: callback.argument
});
}
並將myDataSource
為new filterDataSource
而不是new Yahoo.util.DataSource
。
免責聲明:此代碼可能無法按書面要求工作; 我從一些舊的工作代碼中刪除了它,很可能跳過了一些關鍵的部分。 不過,我希望它傳達了基本思想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.