This is my code for kendo the page is displaying multiple time given in
i tried every this but its still not working please suggest me what to do to solve this problem. picture.And validation message is also not showing its validation but not displaying message
$(document).ready(function() {
$("#production-grid").kendoGrid({
dataSource: {
type: "json",
transport: {
read: {
url: "#Html.Raw(Url.Action("ProductAttributeList", "Production"))",
type: "POST",
dataType: "json",
contentType: "application/json"
},
create: {
url: "#Html.Raw(Url.Action("SettingAdd", "Production"))",
type: "POST",
dataType: "json"
//data: addAntiForgeryToken
},
update: {
url: "#Html.Raw(Url.Action("SettingUpdate", "Production"))",
type: "POST",
dataType: "json"
//data: addAntiForgeryToken
},
destroy: {
url: "#Html.Raw(Url.Action("SettingDelete", "Production"))",
type: "POST",
dataType: "json"
//data: addAntiForgeryToken
},
parameterMap: function(data, operation) {
if (operation != "read") {
return data;
} else {
//for some reasons only such "Filter" data be parsed
return JSON.stringify(data);
}
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "Id",
fields: {
Image: { editable: false, type: "string" },
IteamId: { editable: false, type: "number" },
ProductId: { editable: false, type: "number" },
UserName: { editable: false, type: "string" },
FoundInProductName: { false: true, type: "string" },
FoundInProductDescription: { editable: false, type: "string" },
TaggedKeyword: { editable: false, type: "string" },
TaggedComment: { editable: false, type: "string" },
AttributeName: { editable: true, type: "string" },
Comment: { editable: true, type: "string" },
ShelfID: { editable: true, type: "string" },
ShelfName: { editable: true, type: "string" },
ProductType: { editable: true, type: "string",
validation: { required: true , message: "Product Type is required" } } ,
Remark: { editable: true, type: "string" },
Id: { editable: false, type: "number" }
}
}
},
requestEnd: function(e) {
if (e.type == "create" || e.type == "update") {
this.read();
}
},
error: function(e) {
display_kendoui_grid_error(e);
// Cancel the changes
this.cancelChanges();
},
pageSize: 50,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
pageable: {
refresh: true,
pageSizes:[ 50, 100, 150, 200, 250]
},
scrollable: true,
editable: true,
columns: [
{
field: "Id",
headerTemplate: "<input id='mastercheckbox' type='checkbox'/>",
headerAttributes: { style: "text-align:center" },
attributes: { style: "text-align:center" },
template: "<input type='checkbox' value='#=Id#' class='checkboxGroups'/>",
width: 50
},{
field: "Image",
title: "Image",
width: 300
},{
field: "IteamId",
title: "IteamId",
width: 300
},
{
field: "ProductId",
title: "ProductId",
width: 300
}, {
field: "UserName",
title: "UserName",
width: 300
}, {
field: "FoundInProductName",
title: "Keyword found(PN)",
width: 300
}, {
field: "FoundInProductDescription",
title: "Keyword found(PD)",
width: 300
}, {
field: "TaggedKeyword",
title: "Tagged Keyword",
width: 300
}, {
field: "TaggedComment",
title: "Tagged Comment",
width: 300
},
{
field: "AttributeName",
title: "Attribute Name(the attribute which is worked upon- E.g. Color)",
width: 300
},
{
field: "Comment",
title: "Comment",
editor: CommentTypeDropDownEditor,
template: "#:Comment#",
width: 300
},
{
field: "ShelfID",
title: "Suggested Shelf ID",
width: 300
},
{
field: "ShelfName",
title: "Suggested Shelf Name",
width: 300
},
{
field: "ProductType",
title: "Product Type",
width: 300
},
{
field: "Remark",
title: "Remarks (Free Text)",
width: 300
}
]
});
i can able to fingure out what the issue and validation message is also not displaying
Related
As I mentioned in the question title I need to trigger an event as soon as Shield-ui grid editable cell textbox destroyed. Couldnt find a solution in their documentation.Any help would be appreciable. Thank you.
Here is my code so far ...
$("#allTransGrid").shieldGrid({
dataSource: {
data: datad,
schema: {
fields: {
mbr_id: {path: "mbr_id", type: String},
lon_id: {path: "lon_id", type: String},
center_name: {path: "center_name", type: String},
grp_name: {path: "grp_name", type: String},
mbr_name: {path: "mbr_name", type: String},
lon_amt: {path: "lon_amt", type: Number},
lon_int_amt: {path: "lon_int_amt", type: Number},
loan_total: {path: "loan_total", type: Number},
ind_inst: {path: "ind_inst", type: Number},
today_pay: {path: "today_pay", type: Number, nullable: false},
lon_id_as: {path: "lon_id_as", type: Number}
}
}
},
sorting: {
multiple: true
},
paging: {
pageSize: 12,
pageLinksCount: 10
},
selection: {
type: "row",
multiple: true,
toggle: false
},
columns: [
{field: "mbr_id", width: "100px", title: "Member ID"},
{field: "lon_id", width: "100px", title: "Loan ID"},
{field: "center_name", title: "Center Name", width: "100px"},
{field: "grp_name", title: "Group Name", width: "70px"},
{field: "mbr_name", title: "Member Name", width: "170px"},
{field: "lon_amt", title: "Loan Amount", width: "100px"},
{field: "lon_int_amt", title: "Interest", width: "100px"},
{field: "loan_total", title: "Total", width: "80px"},
{field: "ind_inst", title: "Installment Amount", width: "120px"},
{field: "today_pay", title: "Today Payment"}
],
events: {
editorCreating: function (e) {
if (e.field == "ind_inst") {
e.options = {enabled: false, max: 1000};
}
if (e.field == "loan_total") {
e.options = {enabled: false, max: 500000};
}
if (e.field == "lon_int_amt") {
e.options = {enabled: false, max: 100000};
}
if (e.field == "lon_amt") {
e.options = {enabled: false, max: 100000};
}
if (e.field == "mbr_name") {
e.options = {enabled: false};
}
if (e.field == "grp_name") {
e.options = {enabled: false};
}
if (e.field == "center_name") {
e.options = {enabled: false};
}
if (e.field == "lon_id") {
e.options = {enabled: false};
}
if (e.field == "mbr_id") {
e.options = {enabled: false};
}
if (e.field == "today_pay") {
e.options = {max: 10000};
}
},
detailCreated: function (e) {
$.ajax({
url: "PaymentCatcherGroupBy",
cache: false,
dataType: 'JSON',
data: {loan_id: e.item.lon_id_as, c_id: center_id},
success: function (data) {
$("<div/>")
.appendTo(e.detailCell)
.shieldGrid({
dataSource: {data: data},
sorting: {
multiple: true
},
paging: {
pageSize: 5
},
columns: [
{field: "installment_num", title: "Week", editable: false},
{field: "installmentAmount", title: "Installment Amount", editable: false},
{field: "paidAmount", title: "Paid Amount", editable: false},
{field: "dueDate", title: "Date Paid", type: Date, editable: false}
], editing: {enabled: false}
});
}, error: function (jqXHR, textStatus, errorThrown) {
alert('error');
}
});
},
command: function (e) {
//selectionChanged doesnt work here....
if (e.commandName == "selectionChanged") {
var toBeSelected = e.toBeSelected;
console.log(toBeSelected);
// e.cancel = true;
}
}
},
editing: {
enabled: true,
event: "doubleclick",
type: "cell"
},
scrolling: true,
height: 600
});
After focus lost of the textbox I need to trigger an event :
There is no destroy event, associated with any of the editors in the control, when in edit mode.
One option, depending on the final goal that you have would be to subscribe to the command event:
http://www.shieldui.com/documentation/grid/javascript/api/events/command
which should be triggered on save, after an edit.
If that is not an option, please supply some additional information on what is the exact end result that you are after.
I have a jqGrid that loads all employees' data on page load. There is a select list for departments. On changing the selection on that select list, the department's data is retrieved but it reloads the same all employees data again instead of the filtered data. How can I fix this?
$(function () {
jQuery("#jQGridDemo").jqGrid({
url: 'EmployeeTransfer.aspx/getEmployeesOnLoad',
datatype: 'json',
mtype: 'POST',
colNames: ['Project Name', 'Project Code', 'Emp Code', 'Emp Name', 'Department', 'Designation', 'Stage', 'Id'],
colModel: [
{ name: 'ProjectName', index: 'ProjectName', width: 90, stype: 'text', sorttype: 'string', search: true },
{ name: 'CompCode', index: 'CompCode', width: 90 },
{ name: 'FullCode', index: 'FullCode', width: 100, sorttype: 'integer', search: true },
{ name: 'EmpName', index: 'EmpName', width: 260, sorttype: 'string', search: true },
{ name: 'department', index: 'department', width: 270, hidden: true },
{ name: 'designation', index: 'designation', width: 260, sorttype: 'string', search: true },
{ name: 'Stage', index: 'Stage', width: 260 },
{ name: 'Id', index: 'Id', key: true, width: 70, sorttype: "int",hidden:true },
],
search: true,
rowNum: 30,
height: 700,
sortname: 'Id',
rownumbers: true,
sortable: true,
gridview: true,
loadonce: true,
pager: '#jQGridDemoPager',
viewrecords: true,
autoencode: true,
multiselect: true,
sortorder: "asc",
caption: "Employee Details",
onSelectRow: function (ids) {
if (jQuery("#jQGridDemo").jqGrid('getGridParam', 'records') > 0)
{
var rowId = $("#jQGridDemo").jqGrid('getGridParam', 'selrow');
var rowData = jQuery("#jQGridDemo").getRowData(rowId);
var colData = rowData['EmpName'];
jQuery("#jQGridSelect").addRowData(rowId, rowData);
}
},
serializeGridData: function (data) {
return $.toJSON(data);
}
}).jqGrid('hideCol', 'cb');
$("select#ddlDepts").change(function () {
var dept = $(this).find(":selected").text().trim();
$.ajax ({
type: "POST",
url: "EmployeeTransfer.aspx/getEmployeesByDept",
data: JSON.stringify({ strParam: dept}),
contentType: "application/json;charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (data) {
if (data != null) {
jQuery('#jQGridDemo').jqGrid('clearGridData')
.jqGrid('setGridParam', { data: data, datatype: 'json' })
.trigger("reloadGrid", [{ current: true }]);
}
},
error:
function (x, e) {
alert("The call to the server side failed. " + x.responseText);
}
});
});
});
You need to add a postData param when configuring jqGrid e.g.:
jQuery("#jQGridDemo").jqGrid({ postData: { id: 1 } });
This id param would be posted to the server. Then in your callback from the ajax request, you can update the postData value e.g.:
jQuery('#jQGridDemo').jqGrid('clearGridData')
.jqGrid('setGridParam', { postData: { id: data.id } })
.trigger("reloadGrid", [{ current: true }]);
Finally, I was able to solve my problem. For anyone struggling like me, below is the working code.
success: function (data) {
if (data != null) {
$('#jQGridDemo').clearGridData(true);
$('#jQGridDemo').setGridParam({
datastr: data.d,
datatype: 'jsonstring',
rowNum: data.d.length
}).trigger('reloadGrid');
}
},
The format of my json string was as follows:
{
"d": {
"page": 0,
"total": 2,
"record": 2,
"rows": [
{
"id": 1,
"cell": [
" XXXX",
"107",
"902000707",
"XXXXXXXX",
"IT",
"SOFTWARE ENGINEER",
"Transfer 107 to 109",
"1"
]
},
{
"id": 2,
"cell": [
"XXXX",
"108",
"902000164",
"XXXXXXXX",
"IT",
"IT ADMINISTRATOR",
"Transfer 108 to 107",
"2"
]
}
],
"SortColumn": null,
"SortOrder": null
}
}
When I edit a cell in my grid, a zero ("0") is placed in the cell, overlapping the cell value. This zero does not show when the grid loads, and it does not save to the database when the update happens. If I navigate away and come back, the zero is gone. It only happens if I edit the cell; if I only click in the cell and initiate the inline editing, no zero appears. This happens in every cell, even the dates.
My page is an SPA.
This is the code that builds the grid:
function fnLoadStorageVaults(storageid) {
var ds = new kendo.data.DataSource({
transport: {
read: {
url: URL_GETVAULTS,
dataType: "json",
type: "GET",
data: { StorageID: storageid }
},
update: { dataType: "json", url: URL_UPDATEVAULTS, type: "POST" },
destroy: { url: URL_DELETEVAULT, type: "POST" },
create: { url: URL_INSERTVAULT, type: "POST" },
parameterMap: function (data, type) {
return kendo.stringify(data);
}
},
autoSync: true,
schema: {
model: {
id: "StorageVaultID",
fields: {
VaultNumber: { type: "string", editable: true },
Section: { type: "string", editable: true },
Row: { type: "string", editable: true },
DateFrom: { type: "date", editable: true },
DateTo: { type: "date", editable: true },
WarehouseID: { type: "number", editable: true }
}
}
}
});
$("#VaultGrid").kendoGrid({
dataSource: ds
, sortable: true
, editable: true
, navigable: true
, columns: [
{ field: "WarehouseID", title: "Warehouse", width: "60px" }
,{ field: "VaultNumber", title: "Vault Nbr.", width: "60px" }
, { field: "Section", title: "Section" }
, { field: "Row", title: "Row" }
, { field: "DateFrom", title: "Date In" }
, { field: "DateTo", title: "Date Out" }
]
});
}
My apologies, the update was not working after all. The zero was the response from the server. Still curious behavior though.
I have a basic grid with
editable: "popup"
I have a command column with "edit" in it. I am using a remote data source with read, update, create and destroy defined. The grid works, and when I click Edit, the popup window appears with all my fields in it. If I enter some changes in the fields and click Update, the data gets submitted (I can see the ajax post) but the popup window does not close.
My Update button has these classes "k-button k-button-icontext k-grid-update".
My popup window has these classes "k-widget k-window".
The Cancel button closes the window and the X in upper right closes the window too.
Any ideas?
My datasource code:
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "myReadURL",
dataType: "json"
},
update: {
url: "myUpdateURL",
dataType: "json"
},
create: {
url: "myCreateURL",
dataType: "json"
},
destroy: {
url: "myDestroyURL",
dataType: "json"
}
},
schema: {
data: "data",
total: function(response){return $(response.data).length;},
model: {
id: "id",
fields: {
id: { type: "number", editable: false },
location: { type: "string" },
username: { type: "string" },
host: { type: "string" },
model: { type: "string" },
newhost: { type: "string" },
newserial: { type: "string" },
newassettag: { type: "string" },
complete: { type: "boolean" }
}
}
},
pageSize: 10
});
My Grid init code:
$("#grid").kendoGrid({
dataSource: dataSource,
height: 430,
filterable: true,
sortable: true,
resizable: true,
scrollable: true,
pageable: {
refresh: true,
pageSizes: [10,20,100]
},
columns: [{
hidden: true,
field:"id"
},{
command: "edit",
title: " ",
width: 90
},{
field: "location",
title: "Location",
width: 120,
filterable: {ui: cityFilter}
},{
field: "username",
title: "Username",
width: 120
},{
field: "host",
title: "Host",
width: 180
},{
field: "model",
title: "Model",
width: 180
},{
field: "newhost",
title: "New Host",
width: 180
},{
field: "newserial",
title: "New Serial",
width: 180
},{
field: "newassettag",
title: "New Asset",
width: 180
},{
field: "complete",
title: "Complete",
template: "<input type='checkbox' # if(complete){ # checked #} #/>",
width: 70
}
],
editable: "popup"
});
My html:
<div id="example" class="k-content">
<div id="grid" style="height: 380px"></div>
</div>
Your service needs to return a valid JSON document, even if it is empty. If your service does not respond anything or returns something not parseable as JSON, then it will not close the popup.
For example: Create a file called myUpdateURL that simply contains:
{}
and it should work.
I am newbie in stackoverflow and newbie with Kendo UI and newbie with web development ... I was born yesterday :). Joking apart my question is not really a question, I know the forum rules over specific questions but I need help.
My problem is this:
I adapted the Kendo UI MVC Music Store tutorial but with use MVC ASP.net (I work with Delphi) and it not works.
I have two files:
Category.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Administración de Categorías</title>
<link href="kendo/styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="kendo/styles/kendo.default.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/menuvir.css" type="text/css"/>
<script src="kendo/js/jquery.min.js" type="text/javascript"></script>
<script src="kendo/js/kendo.web.min.js" type="text/javascript"></script>
</head>
<body>
<div id="categGrid"></div>
<script src="js/category.js type="text/javascript"></script>
</body>
</html>
and Category.js
(function (window, $, kendo) {
var getCategAsync = function () {
var deferred = $.Deferred(),
translateCateg = function (data) {
deferred.resolve($.map(data.result, function(item) {
return {
value: item.ID,
text: item.Description
};
}));
},
loadCateg = function () {
new kendo.data.DataSource({
type: "json",
transport: {
read: "/w/Category?select=ID,Description"
},
schema: {
data: 'result'/*,
total: store.config.wcfSchemaTotal*/
}
}).fetch(function (data) {
translateCateg(data);
});
};
window.setTimeout(loadCateg, 1);
return deferred.promise();
};
var getLangAsync = function () {
var deferred = $.Deferred(),
translateLang = function (data) {
deferred.resolve($.map(data.result, function(item) {
return {
value: item.ID,
text: item.Description
};
}));
},
loadLang = function () {
new kendo.data.DataSource({
type: "json",
transport: {
read: "/w/Language?select=ID,Description"
},
schema: {
data: 'result'/*,
total: store.config.wcfSchemaTotal*/
}
}).fetch(function (data) {
translateLang(data);
});
};
window.setTimeout(loadLang, 1);
return deferred.promise();
};
var initGrid = function (categs, langs, categEditor, langEditor) {
$("#categGrid").kendoGrid({
sortable: true,
groupable: false, //true,
filterable: false, //true,
pageable: true,
editable: "inline",
toolbar: ["create"],
dataSource: {
type: "json",
pageSize: 10,
serverPaging: false, //true,
serverFiltering: false, //true,
serverSorting: false, //true,
sort: { field: "SortOrder", dir: "asc" },
transport: {
type: "json",
read: {
url: "/w/Category?select=ID,Description",
type: "GET"
}/*,
update: {
url: function (data) {
return store.config.albumsUrl + "(" + data.AlbumId + ")"
},
type: "PUT"
},
destroy: {
url: function (data) {
return store.config.albumsUrl + "(" + data.AlbumId + ")";
},
type: "DELETE"
},
create: {
url: store.config.albumsUrl,
type: "POST"
} */
},
schema: {
data: "result",
//total: store.config.wcfSchemaTotal,
model: {
id: "ID",
fields: {
ID: { type: "number" },
Description: { type: "string", validation: {required: true} },
Language: { type: "number", defaultValue: 1 },
SortOrder: { type: "number", defaultValue: 0 },
Status: { type: "number", defaultValue: 0 },
Parent: { type: "number", defaultValue: 0 }
}
}
},
},
columns: [
{ field: "ID", title: "ID", editable: false, filterable: false, width: 20 },
{ field: "Description", title: "Descripción", filterable: false, width: 150 },
{ field: "Language", title: "Idioma", values: langs, editor: langEditor, filterable: false, width: 50 },
{ field: "SortOrder", title: "Orden", filterable: false, width: 20 },
{ field: "Status", title: "Estado", filterable: false, width: 50 },
{ field: "Parent", title: "Subcategoría de", values: categs, editor: categEditor, filterable: false, width: 150 },
{ command: ["edit", "destroy"], title: " ", width: "160px" }
]
});
};
// Wait for both the genres and artists lists to load.
$.when(getCategAsync(), getLangAsync())
.done(function(categs, langs) {
var categEditor = function (container, options) {
$('<input data-text-field="text" data-value-field="value" data-bind="value:' + options.field + '" />')
.appendTo(container)
.kendoComboBox({
autoBind: false,
dataSource: categs
});
};
var langEditor = function (container, options) {
$('<input data-text-field="text" data-value-field="value" data-bind="value:' + options.field + '" />')
.appendTo(container)
.kendoComboBox({
autoBind: false,
dataSource: langs
});
};
initGrid(categs, langs, categEditor, langEditor);
});
})(window, jQuery, kendo);
When I execute this nothing is showing and no error in Firebug console.
What's wrong ? Any help is appreciatted.
Thanks in advance and sorry for my english.
UPDATE
Sorry, I forgot update the Category.html code here, but I always had the value right "id" and yet it not works. Thanks for the quick response.
Well, for starters your JQuery is attempting to create a KendoGrid on an ID that isn't present in your HTML
$("#categGrid").kendoGrid(
doesn't match anything in your HTML. Did you mean
$("#grid").kendoGrid({
which would find
<div id="grid"></div>
I solved the problem. I changed some options I adapted erroneously.
This is the code that works.
(function (window, $, kendo) {
var getCategAsync = function () {
var deferred = $.Deferred(),
translateCateg = function (data) {
deferred.resolve($.map(data.items, function(item) {
return {
value: item.ID,
text: item.Description
};
}));
},
loadCateg = function () {
new kendo.data.DataSource({
transport: {
read: {
url: "/w/Category?select=ID,Description",
dataType: "json",
type: "GET"
}
},
schema: {
data: 'result'/*,
total: store.config.wcfSchemaTotal*/
}
}).fetch(function (data) {
translateCateg(data);
});
};
window.setTimeout(loadCateg, 1);
return deferred.promise();
};
var getLangAsync = function () {
var deferred = $.Deferred(),
translateLang = function (data) {
deferred.resolve($.map(data.items, function(item) {
return {
value: item.ID,
text: item.Description
};
}));
},
loadLang = function () {
new kendo.data.DataSource({
transport: {
read: {
url: "/w/Language?select=ID,Description",
dataType: "json",
type: "GET"
}
},
schema: {
data: 'result'/*,
total: store.config.wcfSchemaTotal*/
}
}).fetch(function (data) {
translateLang(data);
});
};
window.setTimeout(loadLang, 1);
return deferred.promise();
};
var initGrid = function (categs, langs, categEditor, langEditor) {
$("#categGrid").kendoGrid({
sortable: true,
groupable: false, //true,
filterable: false, //true,
pageable: true,
editable: "inline",
toolbar: ["create"],
dataSource: {
type: "json",
pageSize: 10,
serverPaging: false, //true,
serverFiltering: false, //true,
serverSorting: false, //true,
sort: { field: "SortOrder", dir: "asc" },
transport: {
read: {
url: "/w/Category?select=*",
type: "GET",
dataType: "json"
}/*,
update: {
url: function(data) {
return "/w/Category?ID=" + data.ID;
},
contentType: "application/json",
type: "PUT"
},
destroy: {
url: function (data) {
return store.config.albumsUrl + "(" + data.AlbumId + ")";
},
type: "DELETE"
},
create: {
url: store.config.albumsUrl,
type: "POST"
} */
},
schema: {
data: "result",
total: function(response) {
return response.result.length;
},
model: {
id: "ID",
fields: {
ID: { type: "number" },
Description: { type: "string", validation: {required: true} },
Language: { type: "number", defaultValue: 1 },
SortOrder: { type: "number", defaultValue: 0 },
Status: { type: "number", defaultValue: 0 },
Parent: { type: "number", defaultValue: 0 }
}
}
},
},
columns: [
{ field: "ID", title: "ID", editable: false, filterable: false, width: 20 },
{ field: "Description", title: "Descripción", filterable: false, width: 150 },
{ field: "Language", title: "Idioma", values: langs, editor: langEditor, filterable: false, width: 50 },
{ field: "SortOrder", title: "Orden", filterable: false, width: 20 },
{ field: "Status", title: "Estado", filterable: false, width: 50 },
{ field: "Parent", title: "Subcategoría de", values: categs, editor: categEditor, filterable: false, width: 150 },
{ command: ["edit", "destroy"], title: " ", width: "160px" }
]
});
};
// Wait for both the genres and artists lists to load.
$.when(getCategAsync(), getLangAsync())
.done(function(categs, langs) {
var categEditor = function (container, options) {
$('<input data-text-field="text" data-value-field="value" data-bind="value:' + options.field + '" />')
.appendTo(container)
.kendoComboBox({
autoBind: false,
dataSource: categs
});
};
var langEditor = function (container, options) {
$('<input data-text-field="text" data-value-field="value" data-bind="value:' + options.field + '" />')
.appendTo(container)
.kendoComboBox({
autoBind: false,
dataSource: langs
});
};
initGrid(categs, langs, categEditor, langEditor);
});
})(window, jQuery, kendo);
Thanks.