or
<record number="3"> <nid>3</nid> <column1>row3col1</column1> <column2>BBBtxt,CCCtxt</column2> <mval>BBBval,CCCval</mval></record><record number="4"> <nid>4</nid> <column1>row4col1</column1> <column2>BBBtxt,CCCtxt</column2> <mval>BBBval</mval> <mval>CCCval</mval> </record><record number="2"> <nid>2</nid> <column1>row2col1</column1> <column2>AAAtxt</column2> <mval>AAAval</mval> </record>// JavaScript DocumentjQuery(document).ready(function() { // grid jQuery("#grid").kendoGrid({ dataSource: gridDataSource, columns: [ { field: "column1", title: "Column 1", width: "300px" }, { field: "column2", title: "Column 2", editor: multiselect_editor, width: "300px" }, { command: [ {name:"edit",text:{update:"Edit",cancel:"Cancel"}}, ], width:"10%" } ], toolbar: [{name:"create",text:"New"}], editable: {mode:"popup"}, sortable: true, pageable: true, resizable: true });})//grid datasourcevar gridDataSource = new kendo.data.DataSource({ type: "xml", transport: { read: function (options) { jQuery.ajax( { url: "data/griddata.asp", type: "POST", cache: false, success: function(result) { options.success(result); }, error: function(e) { alert(e.responseText); }, data: { startrow: ((options.data.pageSize*(options.data.page-1))+1), maxrows: 50 } }); }, update: function (options) { alert("updated"); }, create: function (options) { alert("created"); } }, schema: { type: "xml", data: "/root/resultset/record/", model: { id: "nid", fields: { nid: "nid/text()", column1: "column1/text()", mval: "mval/text()", column2: "column2/text()" } }, total: "/root/resultset/@size" }, error: function(e) { alert(e.xhr.responseText); }, serverFiltering: true, serverPaging: true, serverSorting: true, pageSize: 50})// multiselect for popup editorfunction multiselect_editor (container, options) { jQuery('<select multiple="multiple" id="multiselect_editor" data-text-field="textnode" data-value-field="valuenode" data-bind="value:mval"/>') .appendTo(container) .kendoMultiSelect ({ placeholder: "Select...", autoBind: true, dataTextField: "textnode", dataValueField: "valuenode", dataSource: { type: "xml", serverFiltering: true, sort: { field: "textnode", dir: "asc" }, transport: { read: { type: "POST", cache: false, url:"data/multiselectdata.asp"}, }, schema: { type: "xml", data: "/root/resultset/record", model: { fields: { textnode: "textnode/text()", valuenode: "valuenode/text()" } } } ,error: function(e) { alert(e.xhr.responseText); } } });}<?xml version="1.0" encoding="utf-8"?><root> <resultset date="03/09/2013" size="3" time="10:13:50"> <record number="1"> <nid>1</nid> <column1>row1col1</column1> <column2></column2> <mval></mval> </record> <record number="2"> <nid>2</nid> <column1>row2col1</column1> <column2>AAAtxt</column2> <mval>AAAval</mval><!-- Works for multi select data binding (to set 1 selected item in the multiselect in the editor) --> </record> <record number="3"> <nid>3</nid> <column1>row3col1</column1> <column2>BBBtxt,CCCtxt</column2> <mval>BBBval,CCCval</mval><!-- Does not work for multiselect data binding (to set 2 selected items in the multiselect in the editor) --> </record> <record number="4"> <nid>4</nid> <column1>row4col1</column1> <column2>BBBtxt,CCCtxt</column2> <mval>BBBval</mval><!-- Does not work for multiselect data binding (to set 2 selected items in the multiselect in the editor) --> <mval>CCCval</mval> </record> </resultset></root><?xml version="1.0" encoding="utf-8"?><root> <resultset date="03/09/2013" size="5" time="10:13:50"> <record number="1"> <nid>1</nid> <valuenode>AAAval</valuenode> <textnode>AAAtxt</textnode> </record> <record number="2"> <nid>2</nid> <valuenode>BBBval</valuenode> <textnode>BBBtxt</textnode> </record> <record number="3"> <nid>3</nid> <valuenode>CCCval</valuenode> <textnode>CCCtxt</textnode> </record> <record number="4"> <nid>4</nid> <valuenode>DDDval</valuenode> <textnode>DDDtxt</textnode> </record> </resultset></root>
var MyDatasource = new kendo.data.DataSource({
type: 'odata' /* for odata style IQueryable web api */
serverPaging: true,
serverSorting: true,
pageSize: 15,
transport: {
read: {
dataType: "json",
url: "mywebapi/mydata"
})
The DataSource is used by a Kendo grid with scrollable: { virtual: true }.
A user has the ability to search for data where the searchparam is set on my viewmodel.
within my viewmodel i simply call "MyDatasource.read({ searchvalue: userparam })" to get the data from my web-api which works perfectly.
However, in combination with paging the parameter is lost when reading the next page.
Is there any way to preserve that param so it gets send with the next pages as well ?
Thanks in advance.
$("#level3-multiselect").kendoMultiSelect({ autoBind: false, dataTextField: "name", dataValueField: "id", dataSource: { serverFiltering: true, transport: { dataType: "jsonp", read: baseurl: 'http://myurl' parameterMap: function(options, operation) { var _name = ""; if ('filter' in options && options.filter.filters.length > 0) { _name = options.filter.filters[0].value; } return { level1ids: getLevel1Ids().join(), level2ids: getLevel2Ids().join(), name: _name } } }, schema: { data: "items" } } });
