当前位置: 首页 > 知识库问答 >
问题:

更改另一个多选剑道下拉列表时级联多选剑道下拉列表

禄奇希
2023-03-14

我有一种情况,我有两个多选择剑道下拉列表,在第一个多选择下拉列表的选择上,我想填充另一个多选择下拉列表。

第一个多选剑道DD:

@(Html.Kendo().MultiSelect()
   .Name("FirstDropDown").Placeholder("-- Select --")
   .BindTo(new SelectList(Model.BusinessData, "Id", "Name"))
   .Enable(true)
   .AutoBind(false).Events(e => e.Change("onFirstDropDownChange"))
   .HtmlAttributes(new { style = "width: 300px" })
 )

第2次MultiSelect剑道DD:

 @(Html.Kendo().MultiSelect()
   .Name("project")
   .Placeholder("-- Select --")
   .DataTextField("ProjectName")
   .DataValueField("Id")
   .Filter(FilterType.Contains)
   .DataSource(source =>
    {
       source.Read(read =>
       {
          read.Action("GetProjectByBu", "Reports").Data("filterProjects");
       })
    .ServerFiltering(true);
    })
   .Enable(true)
   .AutoBind(false).Events(e => e.Change("onProjectChange"))
   .HtmlAttributes(new { style = "width: 300px" })
 )

JS代码:

function filterProjects() {
    return {
        buID: $("#FirstDropDown").data("kendoMultiSelect").input.val()
    };
}

我所尝试的:

我试图在函数onFirstDropDownChange中调用AJAX,但由于数据源没有绑定到第二个下拉列表,所以这不起作用。

限制条件:

  1. 首先,我不想在两个下拉列表中加载数据
  2. 第二个下拉列表的值取决于第一个下拉列表,这意味着在第一个下拉列表中选择的所有值将通过MVC控制器发送到数据库并从中获取数据

我想做的是:

当我在第一个多选下拉列表中选择任何值时,我的第二个多选下拉列表将根据在第一个下拉列表中选择的值填充。

共有1个答案

薛兴言
2023-03-14

我已经使用AJAX调用解决了这个问题,下面是详细的步骤:

  1. 首先,我在FirstDropDown上附加了一个JavaScript函数onFirstDropDownChange

var multiselect=$(“#FirstDropDown”)。数据(“kendoMultiSelect”);

var i; var stringArray = new Array();
    for (i = 0; i < multiselect.dataItems().length; i++)
    {
        stringArray[i] = parseInt(multiselect.dataItems()[i].Value,32);
    }

var postedData = { businessIds: stringArray };
var projectDataSource;

jQuery.ajaxSettings.traditional = true;

//AJAX Call
$.ajax({
    url: '/Reports/GetProjectByBu',
    dataType: 'json',
    data: postedData,
    type: "GET",
    contentType: 'application/json; charset=utf-8',
    async: false,
    traditional: true,
    success: function (data) {
        projectDataSource = data;
    }
});

//Update DataSource of 2nd dropdown
$("#project").data("kendoMultiSelect").setDataSource(new kendo.data.DataSource({ data: projectDataSource }));

希望这将帮助你,如果你正在试图寻找类似的解决方案。

 类似资料:
  • 问题内容: 我正在将Kendo下拉列表从现有代码转换为Kendo multiselect。 角色代码:当前为Dropdownlist(转换为Kendo multiselect)。 我没有得到正确的输出。 我有以下代码: 下面是获取角色代码的控制器代码: 如您所见,我尝试在上面的代码中使用多选功能。但这没有用。 问题答案: 下面的代码为我工作:

  • 我在JSFIDLE示例中有以下代码 问题是,当用户单击“添加新记录”时,它会添加一个新项目,其中设施名称下拉列表显示列表中的第一个项目。如果用户单击“更新”,则会保存记录,但会将设施名称清空。原因是,下拉列表中确实没有选定项目。我之所以知道这一点,是因为所选值在传递给控制器代码时为空。所以,我真的很想知道如何 不显示列表中的第一个项目,直到用户在列表中实际选择它或 将选定的项目设置为列表中的第一个

  • 在我的剑道网格中,我为每一列都有kenddropDownlist。选定的项目应解析并显示模板文本 我一直在遵循这个例子http://jsfiddle.net/jddevight/Ms3nn/ 使现代化 我在这里简化了我的问题http://jsfiddle.net/BlowMan/mf434/ 问题 当我在下拉列表中选择一个项目时,它不会返回所选项目的值。它返回null。 }); 下面的视图部分 任

  • 如何在更改函数上选择剑道下拉列表值。剑道下拉列表在网格中。在更改函数中,我想选择列表中的第一项。 我已经编写了代码: 但是下拉列表没有选择更改功能。我该怎么做请帮帮我。

  • 我有一张有多个剑道下拉列表的表格。。 有了选项标签,它显示了空白选择,但是当您打开DROPPDROW列表时,它会出现任何选择“空白区”的选项。在选择了一些下拉列表的值后,我无法返回。 我知道如果我在下拉列表中放入一些文本,选项标签就会出现在下拉列表中(css与其他文本不同)。但我想保留空白。 其他解决方案是在服务器端的第一个位置添加一个记录,但我想知道是否有人有不同的解决方案。谢啦

  • 我正在使用剑道下拉列表,我需要一个占位符的下拉列表,当我选择下拉列表时,它不应该出现在列表中。我尝试使用optionLabel,但此值显示在列表中。 我需要一个解决方案,我可以添加一个占位符,该值不应显示为下拉列表中的选项。