dataSource
オプションserverAggregates
、、、および/またはを定義するとserverFiltering
、KendoUIはそれらのパラメーターをサーバーに送信して、実行する必要のあることとそれに必要なさまざまなパラメーターをサーバーに許可します。serverGrouping
serverPaging
serverSorting
そのような場合は、 KendoUI内部形式からサーバー形式にパラメーターを変換または追加できるように定義transport.parameterMap
または追加できるため、ここでリクエストをインターセプトし、最後のリクエストのパラメーターリストを保存して後で使用できます。transport.read.data
オプション1:
var savedParamAsJSON = undefined;
var savedParamAsStringifiedJSON = undefined;
var savedParamAsUriEncoded = undefined;
var savedParamAsUriDecoded = undefined;
var dataSource = new kendo.data.DataSource({
serverPaging : true,
serverSorting : true,
serverFiltering: true,
transport : {
read : {
url : "data.json"
},
parameterMap: function (data, type) {
if (type === "read") {
savedParamAsJSON = data;
savedParamAsStringifiedJSON = JSON.stringify(data);
savedParamAsUriEncoded = encodeURIComponent(jQuery.param(data));
savedParamAsUriDecoded = jQuery.param(data);
// Actual update the link
$("#exportLink").attr("href", "http://www.onabai.com?" + savedParamAsUriDecoded);
}
}
},
schema : {
model: {
id : "ID",
fields: {
ID: { type: "number"}
}
}
},
pageSize : 8
});
私はparameterMap
それを4つの異なる形式で保存します:
- に
savedParamAsJSON
、savedParamAsStringifiedJSON
JSONオブジェクトまたはその文字列表現(例:)として保存されます{"take":8,"skip":0,"page":1,"pageSize":8}
。
- In
savedParamAsUriEncoded
は文字列として保存されますが、URIエンコードされます(例take%3D8%26skip%3D0%26page%3D1%26pageSize%3D8
:)
- In
savedParamAsUriDecoded
は文字列として保存されますが、URIエンコードされません(例:) take=8&skip=0&page=1&pageSize=8
。
オプション2:transport.read.data
データを保存するための関数を定義する場合にも実行できます。
transport : {
read : {
url : "data.json",
data: function (data) {
savedParamAsJSON = data;
savedParamAsStringifiedJSON = JSON.stringify(data);
savedParamAsUriEncoded = encodeURIComponent(jQuery.param(data));
savedParamAsUriDecoded = jQuery.param(data);
// Actual update the link
$("#exportLink").attr("href", "http://www.onabai.com?" + savedParamAsUriDecoded);
}
}
},