or
dataSource =
new
kendo.data.DataSource({
transport: {
read: {url:
"<?=base_url()?>/bank"
},
update: {url:
"<?=base_url()?>/bank/update"
, type:
"POST"
},
destroy: {url:
"<?=base_url()?>/bank/destroy"
,type:
"POST"
},
create: {url:
"<?=base_url()?>/bank/create"
,type:
"POST"
},
},
error:
function
(e) {
alert(e.responseText);
},
batch:
true
, pageSize: 25,
schema: {
model: {
id:
"id_bank"
,
fields: {
nama_bank: { type:
"string"
},
}
}
}
});
//kendo grid
$(
"#grid_bank"
).kendoGrid({
dataSource: dataSource,
editable:
"popup"
, height: 450, filterable:
true
, sortable:
true
, pageable:
true
,
toolbar: [
"create"
],
columns: [
{ field:
"nama_bank"
,title:
"Nama"
, filterable:
true
},
{ command: [
"edit"
,
"destroy"
], title:
" "
, width:
"160px"
}
]
});
public
function
index() {
header(
"Content-type: application/json"
);
$arr
=
array
();
$data
=
$this
->bank_model->get_bank();
foreach
(
$data
as
$hasil
) {
$arr
[]=
$hasil
;
}
print json_encode(
$arr
);
}
public
function
create() {
header(
"Content-type: application/json"
);
$nama_bank
=
$_POST
[
'models'
][0][
'nama_bank'
];
$query
=
"INSERT INTO bank VALUES (NULL, '$nama_bank')"
;
$rs
=
$this
->db->query(
$query
);
echo
$query
;
if
(
$rs
) {
echo
json_encode(
$rs
);
}
else
{
header(
"HTTP/1.1 500 Internal Server Error"
);
}
}
public
function
update() {
header(
"Content-type: application/json"
);
$id_bank
=
$_POST
[
'models'
][0][
'id_bank'
];
$nama_bank
=
$_POST
[
'models'
][0][
'nama_bank'
];
$query
=
"UPDATE bank SET nama_bank = '$nama_bank' WHERE id_bank = $id_bank"
;
echo
$query
;
if
(
$rs
) {
echo
json_encode(
$rs
);
}
else
{
header(
"HTTP/1.1 500 Internal Server Error"
);
}
}
(function () {
if (kendo.data.DataSource.prototype.set == undefined) {
kendo.data.DataSource.prototype.set = function (id, model) {
var idx, length, data = this._flatData(this._data);
for (idx = 0, length = data.length; idx < length; idx++) {
// Found it?
if (data[idx].id == id) {
// Make sure it's model
if (!(model instanceof kendo.data.Model)) {
if (this.reader.model) {
model = new this.reader.model(model);
}
else {
model = new kendo.data.ObservableObject(model);
}
}
// Update it
data[idx] = model;
this._change();
break;
}
}
// Not found, add it
if (idx == length) {
this.add(model);
}
}
}
})();
function getData()
{
item = dsDrugs.get('1');
dsDrugsDosage.add(item);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
>
<
title
></
title
>
<
meta
http-equiv
=
"X-UA-Compatible"
content
=
"IE=edge"
>
<
script
src
=
"../../../js/jquery.min.js"
></
script
>
<
script
src
=
"../../../js/kendo.mobile.min.js"
></
script
>
<
script
src
=
"../../content/shared/js/console.js"
></
script
>
<
link
href
=
"../../../styles/kendo.common.min.css"
rel
=
"stylesheet"
/>
<
link
href
=
"../../../styles/kendo.mobile.all.min.css"
rel
=
"stylesheet"
/>
<
script
>
var drugs =
[
{
"id": 1,
"name": "Epinephrine",
"price": 12.00,
"intratracheal": 1,
"category": "CPR",
"categoryid": 1,
"intravenous":2,
"featured": true
},
{
"id": 2,
"name": "Atropine",
"price": 21.00,
"intratracheal": 2,
"category": "CPR",
"categoryid": 1,
"intravenous":4,
"featured": false
},
{
"id": 3,
"name": "Naloxone",
"price": 4.00,
"intratracheal": 5,
"category": "Pain",
"categoryid": 2,
"intravenous": 2,
"featured": false
},
{
"id": 4,
"name": "Lidocaine",
"price": 12.50,
"intratracheal": 33,
"category": "Pain",
"categoryid": 2,
"intravenous": 3,
"featured": false
},
{
"id": 5,
"name": "Valium",
"price": 10.00,
"intratracheal": 4,
"category": "Anesthesia",
"categoryid": 3,
"intravenous": 77,
"featured": false
},
{
"id": 6,
"name": "Magnesium chloride",
"price": 4.00,
"intratracheal": 12,
"category": "ICU",
"categoryid": 2,
"intravenous": 3,
"featured": false
},
{
"id": 7,
"name": "Calcium chloride",
"price": 9.50,
"intratracheal": 13,
"category": "ICU",
"categoryid": 3,
"intravenous": 13,
"featured": false
},
{
"id": 8,
"name": "Glucose",
"price": 6.00,
"intratracheal": 13,
"category": "ICU",
"categoryid": 3,
"intravenous": 3,
"featured": false
},
{
"id": 9,
"name": "Shock volume of fluids",
"price": 17.00,
"intratracheal": 13,
"category": "Fluids",
"categoryid": 4,
"intravenous": 4,
"featured": false
},
{
"id": 10,
"name": "Maintenance volume of fluids",
"price": 7.75,
"intratracheal":13,
"category": "Fluids",
"categoryid": 4,
"intravenous": 44,
"featured": false
}
]
;
var schema = { model: {
id: "id",
fields: {
id: {
//this field will not be editable (default value is true)
editable: false,
// a defaultValue will not be assigned (default value is false)
nullable: true
},
name: {
defaultValue: "Error with Name",
},
intratracheal: {
},
intravenous: {
},
category: {
}
}
}
};
var dsDrugs = kendo.data.DataSource.create({
schema: schema,
data: drugs,
group: "category",
error: function () { alert(arguments); }
});
var dsDrugsDosage = kendo.data.DataSource.create({
data: [],
schema: schema,
group: "category",
error: function () { alert(arguments); }
});
dsDrugs.fetch();
function getData()
{
item = dsDrugs.get('1');
dsDrugsDosage.add(item);
}
function dosageResultsViewInit() {
$("#dosageresults-listview").kendoMobileListView({
dataSource: dsDrugsDosage,
template: $("#dosageResultsListViewTemplate").html(),
headerTemplate: "<
h2
> ${value}</
h2
>"
});
}
</
script
>
<
script
type
=
"text/x-kendo-template"
id
=
"dosageResultsListViewTemplate"
>
<
span
class
=
"item-title"
>${name}</
span
>
<
input
class
=
"item-info"
type
=
"text"
value
=
"#:intravenous#"
/>
<
input
class
=
"details-link"
type
=
"text"
value
=
""
#:intratracheal#" />
</
script
>
</
head
>
<
body
>
<
div
data-role
=
"view"
id
=
"drugresultsview"
data-layout
=
"mobile-view"
data-title
=
"Dosage Results"
data-init
=
"dosageResultsViewInit"
>
<
div
data-role
=
"header"
>
<
div
data-role
=
"navbar"
>
<
span
>Dosage Results</
span
> <
a
data-role
=
"button"
data-align
=
"left"
href
=
"#drugcalcview"
>
Back</
a
>
</
div
>
</
div
>
<
div
class
=
"head"
>
<
a
href
=
"javascript:getData()"
>GetData</
a
></
div
>
<
div
id
=
"drugresultsviewbg"
class
=
"k-content"
>
<
ul
id
=
"dosageresults-listview"
>
</
ul
>
</
div
>
</
div
>
<
script
>
window.kendoMobileApplication = new kendo.mobile.Application(document.body);
</
script
>
</
body
>
</
html
>
$(document).ready(function () {
var baseAddress = window.parent.document.location + "Home/";
var viewModel = kendo.observable({
userDataSource: new kendo.data.DataSource({
transport: {
read: {
url: baseAddress + "GetUsers",
dataType: "json",
}
}
}),
SelectedRole: null,
SelectedUser: null,
accessValue: null,
Roles: [],
Accesses: [],
});
Hi
I am new to Kendo ui and have created a MVC page with a very simple Grid
@Html.Kendo().Grid(Model).Name("kendoGrid").Columns(columns =>
{
columns.Bound(p=>p.Id).Width(50);
columns.Bound(p => p.name);
columns.Bound(p => p.Date);
columns.Bound(p => p.time);
columns.Command(command => { command.Custom("Details").Text("Details").Action("Edit", "Booking"); }).Width(100);
}).Sortable().Scrollable().DataSource(dataSource => dataSource.Server()
.Model(model => model.Id(p => p.Id))
).HtmlAttributes(new{Style ="height: 100%"})
My question is what is the best way to refresh the grid data every 1min. whiteout reloading the whole page.