我有两个班级:
class Enterprise
{
string EnterpriseCode {get; set;}
string LocationCode {get; set;}
List<FinYear> FinYears {get; set;}
}
class FinYear
{
string FinancialYear {get; set;}
}
从我的Controller中,我传递了一个强类型的数据类型List&lt; Enterprise&gt;
我在视图的HTML部分中有两个Kendo下拉列表:
@model List<Enterprise>
@(Html.Kendo.DropDownList()
.Name("EnterpriseDDL)
.BindTo(Model)
.DataTextField("EnterpriseCode")
.DataValueField("Enterprise")
和
(Html.Kendo.DropDownList()
.Name("YearsDDL")
.cascadeFrom("EnterpriseDDL")
.BindTo(Model) //!!! not sure about this
.DataTextField("") //!!!
.DataValueField("") //!!!
这三个字段应该是什么,以便DDL包含相关的fin年列表 与企业(在上一个下拉列表中选择)
答案 0 :(得分:0)
您无法从此级联,因为没有Parent <-> Child
关系。这意味着FinYear
没有ParentID
。您需要手动更改第二个ComboBox的dataSource或实现连接。
- 儿童组合框将听取父母价值的任何变化。
- 如果父级没有值,则该子级将被禁用。
Cascading ComboBoxes ComboBox / Cascading ComboBox Demo
以下是demo: - JavaScript
但我认为您也可以轻松修改扩展名。{/ p>
<强> HTML 强>:
<div class="demo-section k-header">
<p>
<label for="categories">Enterprises:</label><input id="categories" style="width: 270px" />
</p>
<p>
<label for="products">FinYear:</label><input id="products" style="width: 270px" />
</p>
</div>
<强>的JavaScript 强>:
var enterpriseArray = [{
EnterpriseCode: "abc",
LocationCode: "123",
FinYears: [ "2014", "2015" ]
},
{
EnterpriseCode: "def",
LocationCode: "456",
FinYears: [ "2012", "2013" ]
}];
$(document).ready(function() {
var categories = $("#categories").kendoComboBox({
placeholder: "Select Enterprise Code...",
dataTextField: "EnterpriseCode",
dataValueField: "EnterpriseCode",
dataSource: enterpriseArray,
change: function(e) {
//debugger;
products.dataSource.data(e.sender.dataItem().FinYears);
}
}).data("kendoComboBox");
var products = $("#products").kendoComboBox({
placeholder: "Select FinYear...",
//dataTextField: "",
//dataValueField: "",
}).data("kendoComboBox");
});