JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.default.min.css">
<script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.1.1/css/bootstrap-combined.min.css">
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.metro.min.css">
<div id="filterControl">
<label>Package:</label>
<select
data-text-field="text"
data-value-field="value"
data-bind="source: dsPackageInfo.view(), value: filter.PackageInfoId">
</select>
<label>Module:</label>
<select
data-text-field="text"
data-value-field="value"
data-bind="source: dsModuleInfo.view(), value: filter.ModuleInfoId">
</select>
</div>
JavaScript
var filterModel = {
dsPackageInfo: new kendo.data.DataSource(),
dsModuleInfo: new kendo.data.DataSource(),
filter: {
ModuleInfoId: "0",
PackageInfoId: "0"
}
};
filterModel.dsPackageInfo.data([{
value: "0",
text: "(all)"
}, {
value: "1",
text: "Application"
}]);
filterModel.dsModuleInfo.data([{
value: "0",
text: "(all)",
parentValue: "0" // (all)
}, {
value: "1",
text: "Company",
parentValue: "1" // Application
}, {
value: "2",
text: "Core",
parentValue: "1" // Application
}, {
value: "3",
text: "Security",
parentValue: "1" // Application
}]);
filterModel.dsModuleInfo.filter({
logic: "or",
filters: [
{ field: "parentValue", operator: "eq", value: filterModel.filter.PackageInfoId },
{ field: "parentValue", operator: "eq", value: "0" }
]
});
filterModel = new kendo.data.ObservableObject(filterModel);
filterModel.bind("set", function(e) {
filterModel.dsModuleInfo.filter({
logic: "or",
filters: [
{ field: "parentValue", operator: "eq", value: e.value },
{ field: "parentValue", operator: "eq", value: "0" }
]
});
});
$(document).ready(function () {
kendo.bind($("#filterControl"), filterModel);
});