or
<
label
for
=
"Client"
>Client</
label
>
@(Html.Kendo().ComboBox()
.Name("Client")
.Placeholder("Select Client...")
.DataTextField("ClientName")
.DataValueField("ClientID")
.Events(e => e.DataBound("onDataBoundClient"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetClientsCombo", "Tools");
});
})
)
<
label
for
=
"Package"
>Package</
label
>
@(Html.Kendo().ComboBox()
.Name("Package")
.Placeholder("Select Package...")
.DataTextField("PackageName")
.DataValueField("PackageID")
.Events(e => e.DataBound("onDataBoundPackage"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetPackagesCombo", "Tools")
.Data("filterPackages");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.CascadeFrom("Client")
)
public
JsonResult GetClientsCombo()
{
int
selectedClientId = Session[
"selectedClientId"
];
var query =
//Linq Query to get results
select
new
{
ClientID = LinqClientIdColumn,
ClientName = LinqClientNameColumn,
Selected = LinqClientIdColumn == selectedClientId
};
return
Json(query, JsonRequestBehavior.AllowGet);
}
public
JsonResult GetPackagesCombo(
int
clients,
string
packageFilter)
{
int
selectedPackageId = Session[
"selectedPackageId"
];
var query =
//Linq Query to get results
select
new
{
PackageID = LinqPackageIdColumn,
PackageName = LinqPackageNameColumn,
Selected = LinqPackageIdColumn == selectedPackageId
};
return
Json(query, JsonRequestBehavior.AllowGet);
}
function
onDataBoundClient() {
var
DataObject = $(
"#Client"
).data(
"kendoComboBox"
).dataSource.data();
var
selectedObject = $.grep(DataObject,
function
(obj) {
return
obj.Selected ===
true
;
});
$(
"#Client"
).data(
'kendoComboBox'
).value(selectedObject[0].ClientID);
};
function
onDataBoundPackage() {
var
DataObject = $(
"#Package"
).data(
"kendoComboBox"
).dataSource.data();
var
selectedObject = $.grep(DataObject,
function
(obj) {
return
obj.Selected ===
true
;
});
$(
"#Package"
).data(
'kendoComboBox'
).value(selectedObject[0].PackageID);
};