我的情景:
使用ComboBox结束的级联下拉列表(局部视图)在master->详细信息场景中使用了剑道网格
ddl-> ddl-> ddl-> CB
目标:
在我的情况下,它的工作原理如下:
或者,当我加载父DropDownList数据时,如果我清除 text / value 的kendoComboBox属性:
如果我将ComboBox控件更改为第4个DropDownList,它仍然会“闪烁”,但总的来说一切正常。模型中的选定项目在DropDown中正确保存。
我无法提供一个完整的例子,因为它太重了但我认为没必要。
这就是列表数据的级联方式。在父级的DataBound事件中调用子级的.dataSource.read()方法。没什么好看的。
function ParentProductIdDataBound() {
var dropdownlist = $("#ParentProductId").data("kendoDropDownList");
if (dropdownlist.value()) {
OnParentProductIdChange();
}
}
function ParentProductIdChange() {
OnParentProductIdChange();
}
function OnParentProductIdChange() {
var productcombobox = $("#ProductId").data("kendoComboBox");
productcombobox.text(""); <- empty until combo is populated
productcombobox.value("");
productcombobox.enable(true); <- enable combo
productcombobox.dataSource.read(); <- populate combo
}
这是组合本身的代码
@(Html.Kendo().ComboBox()
.Name("ProductId")
.DataTextField("Text")
.DataValueField("Value")
.AutoBind(false)
//.Text(Model.ProductId == 0 ? " " : Model.ProductName)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetMeansOfProduction", "DemandForMeansOfProduction", new { level = 3 }).Data("onProductComboBoxAdditionalData");
})
.ServerFiltering(false);
})
.Events(e =>
{
e.Change("ProductIdChange");
e.DataBound("ProductIdDataBound");
})
)
看起来像:
解决方案的想法?
答案 0 :(得分:0)
解决方案结果如此简单,几乎令人尴尬......
我只需要从 text / value (name / id)对切换到 text / text ,并且不再有'眨眼'或消失问题。< / p>
转到:
@(Html.Kendo().ComboBox()
.Name("ProductId")
.DataTextField("Text")
.DataValueField("Value")
成:
@(Html.Kendo().ComboBox()
.Name("ProductName")
.DataTextField("Text")
.DataValueField("Text")
它会在控制器中引起一些额外的工作,但至少可以工作。
我希望能节省时间给某些人,比如它本可以救我一些......