Hi,
I'm a beginner in the use of your framework.
I'm trying to use a listboxcontrol containing hours that I can select for 7 different days of the week.
When I oepn the window containing my listbox I refresh my columns with data already selected for the day I'm working on or reloading my listbox (if no data was saved.
Here is my function :
function onOpenRefresh(e) {
var caseCochee = "";
// On récupère la première case cochée
if ($("#header-chb-lundi").is(':checked')) {
caseCochee = "lundi";
} else if ($("#header-chb-mardi").is(':checked')) {
caseCochee = "mardi";
} else if ($("#header-chb-mercredi").is(':checked')) {
caseCochee = "mercredi";
} else if ($("#header-chb-jeudi").is(':checked')) {
caseCochee = "jeudi";
} else if ($("#header-chb-vendredi").is(':checked')) {
caseCochee = "vendredi";
} else if ($("#header-chb-samedi").is(':checked')) {
caseCochee = "samedi";
} else if ($("#header-chb-dimanche").is(':checked')) {
caseCochee = "dimanche";
} else {
alert("Vous n'avez pas choisi de jour !!!");
return;
}
var sourceUrl = "@Url.Action("GetTranchesHoraires", "EngagementRadioSM")";
var dataSource1 = new kendo.data.DataSource({
transport: {
read: sourceUrl,
dataType: "jsonp"
}
});
// On réinit nos deux listbox
var listeTranches1 = $("#listbox1").data("kendoListBox");
var listeTranches2 = $("#listbox2").data("kendoListBox");
listeTranches1.setDataSource(dataSource1);
listeTranches1.dataSource.read();
listeTranches2.dataSource.data([]); // On vide à gauche
// On crée un tableau trié
var mesTranchesTrie = [];
if (mesTranches.length > 0 && mesTranches.find(function (e) { return e.sweekDay === caseCochee; })) {
debugger;
mesTranchesTrie = mesTranches;
mesTranchesTrie.sort(function (a, b) { return b["nid_tranche"] - a["nid_tranche"]; });
var tranche = [];
for (var k = 0; k < mesTranchesTrie.length; k++) {
if (mesTranchesTrie[k].sweekDay == caseCochee) {
tranche.push({ nid_tranche_horaire: mesTranchesTrie[k].nid_tranche, slibelle: mesTranchesTrie[k].slibelle });
}
}
debugger;
var d2 = new kendo.data.DataSource({ data: tranche });
d2.read();
listeTranches2.setDataSource(d2);
var d1 = listeTranches1.dataSource;
var dret = new kendo.data.DataSource();
for (var i = 0; i < d2._data.length; i++) {
var idTanche2 = d2._data[i].nid_tranche_horaire;
for (var j = 0; j < d1._data.length; j++) {
var idTanche1 = d1._data[j].nid_tranche_horaire;
if (idTanche2 != idTanche1) {
dret.add({ nid_tranche_horaire: d1._data[j].nid_tranche_horaire, slibelle: d1._data[j].slibelle });
}
}
d1 = dret;
dret = new kendo.data.DataSource();
}
debugger;
listeTranches1.setDataSource(d1);
} else {
debugger;
listeTranches1.setDataSource(dataSource1);
listeTranches1.dataSource.read(); // On remplit à droite
}
};
And here is my EngagementRadioSM function alloowing me to get the hours that I put in my Listbox:
public JsonResult GetTranchesHoraires()
{
List<TrancheHoraire> lls_ret = new List<TrancheHoraire>();
var list = _context.P_GCC_GET_TRANCHES_HORAIRES();
foreach (var line in list)
{
TrancheHoraire obj = new TrancheHoraire
{
nid_tranche_horaire = line.nid_tranche_horaire,
slibelle = line.slibelle
};
obj.bisValid = false;
lls_ret.Add(obj);
}
return Json(lls_ret, JsonRequestBehavior.AllowGet);
}
mesTranches is an array where I put my data for the different selected hours and days.
My main problem is that I cannot reset my listbox 1 when I already have data for the selected day in mesTranches ...
Hope my explanation isn't too bad (I'm french ...)
Thanx a lot for your help
Antoine