我正在尝试设置我的MVC 5应用,以便用户无法输入未显示在下拉列表中的值。
我找到了以下解决方案JSFiddle Here,但我很难将其转换为Razor语法。
以下是我到目前为止的情况。我无法弄清楚的是如何让“数据源”进行检查。
<div class="form-group">
@Html.LabelFor(model => model.loadType, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@(Html.Kendo().ComboBox()
.Name("loadType")
.Filter(FilterType.Contains)
.DataTextField("Text")
.DataValueField("Value")
.BindTo(Model.LoadTypes)
.Suggest(true)
)
@Html.ValidationMessageFor(model => model.loadType)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.loadDescrip, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@(Html.Kendo().ComboBox()
.Name("loadDescrip")
.Filter(FilterType.Contains)
.DataTextField("DocCode")
.DataValueField("DocCode")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeDocumentNumbers", "DockDoor")
.Data("filterLoadDescription");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.CascadeFrom("loadType")
.Events(e =>
{
e.Change("onChange");
})
)
@Html.ValidationMessageFor(model => model.loadDescrip)
</div>
</div>
function onChange() {
var lT = $("#loadType").data("kendoComboBox").input.val();
if (lT != "Generic") {
var lD = $("#loadDescrip").data("kendoComboBox").input.val();
// Here I need to compare 'lD' to what is populated in the comboBox dropdown
var combobox = $("#loadDescrip").data("kendoComboBox");
//this is for Testing purposes only
alert(lD +" " + lT);
}
};
答案 0 :(得分:1)
您可以从小部件的DataSource
属性中获取任何Kendo小部件的.dataSource
。例如:
var loadDescripDataSource = $("#loadDescrip").data("kendoComboBox").dataSource;
从那里你可以在DataSource上调用.view()
来获取数据源中的项目数组,然后遍历它们以找到你需要的东西。