or
var ExportVM = kendo.observable({
ticketID: "bad",
maxTiles: 15,
jobTime: "not yet set",
timeEstimate: "really bad",
tileRate: 0,
tileCount: 0
});
<
div
id
=
"ExportBeginBlock"
>
<
div
class
=
"SectionBlock"
>
<
span
>Estimated Time:</
span
>
<
span
data-bind
=
"text: jobTime"
></
span
>
<
span
>Hours:Minutes:Seconds</
span
>
</
div
>
<
div
class
=
"SectionBlock"
>
<
span
>Estimated Tile Files:</
span
>
<
span
data-bind
=
"text: maxTiles"
></
span
>
</
div
>
<
div
id
=
"buildMapPackageButton"
class
=
"k-button button green bigrounded"
>BUILD MAP PACKAGE</
div
>
<
div
id
=
"cancelMapButton"
class
=
"button rosy bigrounded k-button"
>CANCEL</
div
>
</
div
>
01.
function ShowEstimates(data)
02.
{
03.
ExportVM.set("maxTiles", data.maxTiles);
04.
ExportVM.set("ticketID", data.ticket);
05.
ExportVM.set("jobTime", data.timeEstimate);
06.
ExportVM.set("timeEstimate", data.timeEstimate);
07.
ExportVM.set("tileRate", data.tileRate);
08.
kendo.bind($("#ExportBlock"), ExportVM);
09.
}
I have a kendo grid that has a custom editor template for a field. I want to be able to key the data into the cell as a string (default inline editing) or be able to click a 'loookup/search' icon in the cell, open a popup and make a selection and then populate the data into the cell I am working in. I have all of it working except I can't seem to figure out how to make the callback that receives the data from the popup locate and update the cell that the popup was initiated from. Here is a snippet of the code I'm using, what do I do in the callbackHandler?
var columns = [
{
field: "Seq",
title: "Line",
},
{
field: "Name",
title: "Name",
},
{
field: "Model",
title: "Model",
editor: function (container, options) {
var input = $("<
input
/>");
input.attr("name", options.field);
input.attr("class", "k-textbox");
input.appendTo(container);
var lookupLink = $("<
img
src=\"/content/images/search24x24.png\" onclick=\"showModelSearch(callBackHandler);\" />");
lookupLink.appendTo(container);
}
}
myGrid = $("#myGrid").kendoGrid({
scrollable: false,
sortable: true,
resizable: true,
reorderable: false,
dataSource: gridDataSource,
columns: columns,
toolbar: ["create"],
editable: "inline",
});
var callBackHandler = function(selectedData) {
//Do what???
//Update the cell that the popup came from with the data sent back
//but how?
}
function
KendoUIGrid(config)
{
var
grid = $(
"#"
+ config.id);
grid.kendoGrid({
columns: config.columns,
dataSource: {
transport: {
read: {
url: config.url,
dataType:
"JSON"
,
type:
"POST"
,
data: {
action:
'read'
}
},
//destroy: {
// url: config.url,
// dataType: "JSON",
// type: "POST",
// data: {
// action: 'destroy'
// }
//},
//update: {
// url: config.url,
// dataType: "JSON",
// type: "POST",
// data: {
// action: 'update'
// }
//},
//create: {
// url: config.url,
// dataType: "JSON",
// type: "POST",
// data: {
// action: 'create'
// }
//},
parameterMap:
function
(options) {
var
result = {
page: options.page,
pageSize: options.pageSize,
skip: options.skip,
orderBy:
''
,
take: options.take,
pi: options.page == 1 ? 1 : options.skip + 1,
pf: options.skip + options.take,
action: options.action
};
if
(options.sort != undefined) {
if
(options.sort[0] != undefined) {
result.orderBy = options.sort != undefined ? options.sort[0][
'field'
] +
' '
+ options.sort[0][
'dir'
] :
''
;
}
else
{
result.orderBy = 1;
}
}
return
result;
}
},
schema: {
total:
"total"
,
data:
"data"
},
pageSize: 15,
serverSorting:
true
,
serverPaging:
true
,
severFiltering:
true
},
sortable:
true
,
resizable:
true
,
pageable: {
numeric:
false
,
input:
true
},
selectable:
true
});
<
h2
>Proveedores</
h2
>
<
div
class
=
"box k-shadow"
>
<
div
id
=
"grid"
>
<
div
class
=
"k-block"
>
<
div
class
=
"k-header"
>Filtro de búsqueda</
div
>
<
table
>
<
tr
>
<
td
>
<
input
type
=
"text"
name
=
"nombre"
placeholder
=
"Ingrese el nombre del proveedor"
class
=
"k-textbox"
/>
</
td
>
<
td
style
=
"width:100px;"
>
<
select
>
<
option
>Activo</
option
>
<
option
>Inactivo</
option
>
</
select
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
>
<
button
class
=
"k-button"
>Limpiar</
button
>
<
button
id
=
"btnFiltrar"
class
=
"k-button"
>Filtrar</
button
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
div
>
</div
$(document).ready(
function
() {
var
config =
{
id:
'grid'
,
url: BaseUrl(
'mantenimiento/ProveedorGrid'
),
columns: [
{ field:
"id"
, title:
"id"
, width: 50, hidden:
true
},
{ field:
"nombre"
, title:
"Nombre"
},
{
command:
[
{template: KendoUILinkButton(BaseUrl(
'mantenimiento/proveedor'
),
'edit'
)},
{template: KendoUILinkButton(BaseUrl(
'mantenimiento/ProveedorGrid'
),
'delete'
)}
],
width: 88
}
]
};
KendoUIGrid(config);
$(
"#btnFiltrar"
).click(
function
() {
$(
"#grid"
)
.data(
"kendoGrid"
)
.dataSource.filter({
filters: [
{ field:
"nombre"
, operator:
"startswith"
, value:
"Paul"
}
]
});
})
})
function
mobileListViewTemplatesInit() {
$(
"#termin-listview"
).kendoMobileListView({
dataSource: kendo.data.DataSource.create({ transport: { read: { url: urlTermine, dataType:
"json"
,
data: {
gn: id
}} }, group:
"Datum"
}),
template: $(
"#customListViewTemplate"
).html(),
headerTemplate:
"<h2 class='termin-title'>Termine am ${value}</h2>"
});
}