簡體   English   中英

YUI:過濾數據表客戶端

[英]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
    });
}

並將myDataSourcenew filterDataSource而不是new Yahoo.util.DataSource

免責聲明:此代碼可能無法按書面要求工作; 我從一些舊的工作代碼中刪除了它,很可能跳過了一些關鍵的部分。 不過,我希望它傳達了基本思想。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM