Kendo ui 动态刷新KendoUI下拉列表
我有以下三个KendoUI下拉列表框Kendo ui 动态刷新KendoUI下拉列表,kendo-ui,kendo-combobox,Kendo Ui,Kendo Combobox,我有以下三个KendoUI下拉列表框 @(Html.Kendo().DropDownList() .HtmlAttributes(new { style = "width:auto;height:25px" }) .OptionLabel("Make (any)") .Name("Make") .DataTextField("Name") .DataValueField("MakeId") .DataSource(source =&g
@(Html.Kendo().DropDownList()
.HtmlAttributes(new { style = "width:auto;height:25px" })
.OptionLabel("Make (any)")
.Name("Make")
.DataTextField("Name")
.DataValueField("MakeId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetMakes", "Home");
})
.ServerFiltering(true);
})
.SelectedIndex(0)
)
@(Html.Kendo().DropDownList()
.Name("Model")
.HtmlAttributes(new { style = "width:auto;height:25px" })
.OptionLabel("Model (any)")
.DataTextField("Name")
.DataValueField("ModelId")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetModels", "Home")
.Data("FilterModels");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.CascadeFrom("Make")
)
@(Html.Kendo().DropDownList()
.Name("Fuel")
.HtmlAttributes(new { style = "width:auto;height:25px" })
.OptionLabel("Fuel type (any)")
.DataTextField("Name")
.DataValueField("FuelTypeId")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetFuelTypes", "Home")
.Data("FilterFuelTypes");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
)
当用户从Make DropDownList中选择值时,使用CascadeFrom自动填充模型DropDownList
但是现在,我想在Make或Model列表更新时更新Fuel下拉列表,我发现您只能有一个CascadeFrom调用
关于如何实现这一点,有什么建议吗?作为一种解决方法,我将使用“模型”下拉列表中的“选择”事件来启动功能,以刷新“燃料”下拉列表,并将Cascade FromMake添加到“燃料”下拉列表中 这将在选择Make后触发read操作,然后在选择模型后刷新Fuel下拉列表
@(Html.Kendo().DropDownList()
.Name("Model")
.HtmlAttributes(new { style = "width:auto;height:25px" })
.OptionLabel("Model (any)")
.DataTextField("Name")
.DataValueField("ModelId")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetModels", "Home")
.Data("FilterModels");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.CascadeFrom("Make")
.Events(events => events.Select("select"))
)
选择连接到模型下拉列表中的事件以刷新燃料下拉列表:
<script>
function select(e) {
// get a referenence to the Kendo UI DropDownList
var dropdownlist = $("#Fuel").data("kendoDropDownList");
if (dropdownlist) {
// re-render the items in drop-down list.
dropdownlist.refresh();
}
};
</script>
这对我有用
$("#Fuel").data("kendoDropDownList").dataSource.read();
请在下面试试
var a=$Fuel.datakendoDropDownList;
a、 dataSource.read;燃料下降是否会根据型号选择触发级联?模型选择不是从制造中层叠而来的吗?看起来您的燃料下拉列表只需要从Make下拉列表中级联。我想允许用户选择Make并获取所有燃料类型,或者选择Make然后获取所有燃料类型。我在这篇文章中找到了我的问题的解决方案,谢谢。这正是我想弄明白的。如何传递所选的MakeId或ModelId,以便燃油列表仅匹配所选的燃油?在select方法中,您可以对ModelId执行如下操作。dataIteme.item.index.value。如果您从Make中级联燃油下降,则可以将数据流方法附加到数据源中的读取操作。这是一个很好的例子。根据您的经验,如果我想添加其他下拉列表,如发动机尺寸、颜色等,您会怎么做?所有这些都需要在其他下拉列表发生变化时进行更新。我喜欢您使用级联下拉列表的方法,并且可能会沿着该路径继续。引爆点将取决于有多少选项,以及大多数用户是否会使用这些选项。如果最有可能的用例是用户选择您提供的所有选项,那么您最好立即从服务器返回所有选项。如果你看看汽车交易网站,这就是我想要实现的技术。关于如何实现这一点有什么建议吗?应该是$Fuel.datakendoDropDownList.dataSource.read;属性数据源有一个大写字母