我在五月份的页面上有一个Kendo MVC DropdownTree。我正在成功地将从中选择的值保存到数据库中。当我开始编辑数据时,该值从模型中正确返回并在DropdownTree中进行了设置,但是,在下拉树中没有任何项目在视觉上被选中。
当我尝试从单击按钮时读取下拉树的值时,它正确地返回值。
@(Html.Kendo().DropDownTree()
.Name("VocationID")
.DataTextField("Name")
.DataValueField("Id")
.ValuePrimitive(true)
.Placeholder("--Select Vocation--")
.Value(Model.VocationID.ToString())
.DataSource(dataSource => dataSource
.Read(read => read
.Action("GetVocationTree", "ApplicationForm"))
)
.HtmlAttributes(new { style = "width: 250px;", required = "required", validationMessage = "Vocation is required" })
)
function TestValue() {
var dropdowntree = $("#VocationID").data("kendoDropDownTree");
alert(dropdowntree.value());
}
上面的javascript警报正确地返回值,但在DropdownTree中没有显示选中的项目。我还尝试删除ValuePrimitive属性,但都不起作用。
有没有人能帮我找出这里缺了什么?
发布于 2019-05-31 06:47:24
终于找到了处理这件事的方法。如果有一天它对某人有帮助,就把它贴出来。
此控件的行为稍有不同。您可以将所选项目读取为ID,但需要设置其文本而不是ID来设置所选项目。
获取项值:
var dropdowntree = $("#VocationID").data("kendoDropDownTree");
var VocationID = dropdowntree.value().id;
并设置默认值:
@(Html.Kendo().DropDownTree()
.Name("VocationID")
.DataTextField("Name")
.DataValueField("Id")
.Placeholder("--Select Vocation--")
.Value(Model.VocationName)
注意"VocationName“而不是ID。
https://stackoverflow.com/questions/56346276
复制相似问题