Kendo UI Grid Row Select

Kendo ui Multi Select aşamasında hesaplama yapmak için bir örnektir.

Kendo grid’de multi select Property’sin set ettikten sonra birde onChange Functionunu change eventine tanımlamak gerekmektedir

dsHotelsPrices Generic handlerdan gelen json datasıdır. ve Kendo Datasource şeklinde döner.

[js]
$("#grid").kendoGrid({
dataSource: dsHotelsPrices, selectable: "multiple", change: <strong>onChange</strong>,
columns: [
{
field: "RowID",
title: "ID",
hidden: true,
editable: false
}
]

});

[/js]

Daha sonra change eventimiz aşağıdaki şekilde yapolandırılmalı Senaryo Adult, First Child, Second Child,ve ekstra 3 üncü kişi hesaplamasını yapmakatadır.
[js]
function onChange(arg) {
var AdultPrice = 0;
var Child1Price = 0;
var Chidl2Price = 0;
var Person3Price = 0;

var grid = this;
// console.log(grid);
var ids = grid.select().map(function () {
// Siz aşağıdaki kısmı isterseniz JSON olarakta tanımlayabilirsiniz .Ben object olarak tanımlayıp array çıktısı almayı tercih ettim.

var Fiyat = new Object();
Fiyat.PerPersonPrice1 = grid.dataItem($(this)).PerPersonPrice;
Fiyat.Discount1Child = grid.dataItem($(this)).Child1Price;
Fiyat.Discount2Child = grid.dataItem($(this)).Child2Price;
Fiyat.Discount3Person = grid.dataItem($(this)).PerPersonPrice – grid.dataItem($(this)).Adult3Price;
return Fiyat;
}).toArray();

// eger birden fazla row secilmis ise bır oncekı rakamla topla
if (ids.length > 0) {
for (var i = 0; i < ids.length; i++) {
AdultPrice = AdultPrice + ids[i].PerPersonPrice1;
Child1Price = Child1Price + ids[i].Discount1Child;
Chidl2Price = Chidl2Price + ids[i].Discount2Child;
Person3Price = Person3Price + ids[i].Discount3Person;
}

}

// son olarak hesaplanan rakamlar html de bulunan divlere basılır.
$("._adlOneDay").html(AdultPrice);
$("._chd1OneDay").html(Child1Price);
$("._chd2OneDay").html(Chidl2Price);
$("._person3OneDay").html(Person3Price);

var Adult = $("#cmbYetiskin").data("kendoComboBox");
var Child = $("#cmbCocuk").data("kendoComboBox");

// kombolar değişirse seçili rowlara göre tekrar hesap yaptıran fonksiyonlar.
ChildHesapla(Child.value());
AdultHesapla(Adult.value(),2);
}

[/js]

Leave a Reply