KendoUI 级联下拉列表 -- 从下拉列表中检索 json 数据以在控制器中使用

本文关键字:下拉列表 数据 控制器 检索 级联 KendoUI json | 更新日期: 2023-09-27 18:31:53

哦,天哪,这次我把自己弄成什么样子了。必须让一些 KendoUI 级联的淹没列表正常工作,但我想我现在将从两个开始。基本上,我需要检索用户为视图中的第一个列表选择的任何内容,并将其发送回控制器,然后将其传递给实体框架方法(我已经设置了)。这就是我现在所拥有的。然后,控制器根据所选的第一个下拉列表除法值传回相应的第二个下拉列表。我已经尝试在参数映射中使用 Kendo stringify(data) 技巧以及使用 cascadeFrom:"division",正如 kendoui 文档中所建议的那样,但到目前为止还没有奏效。因此,到目前为止,我得到了这个有趣的创作。

任何帮助或加菲猫漫画都非常感谢。

下拉列表的 JS;

var divisions = $("#division").kendoDropDownList({
    optionLabel: "Select category...",
    dataTextField: "CodeAndDescription",
    dataValueField: "Code",
    dataSource: {
        // type: "odata",
        serverFiltering: true,
        transport: {
            read: {
                url: VIPApiUrl + "GetDivision",
                dataType: "json",
                async: false,
                type: "POST",
            }, parameterMap: function (options, type) {
                // edit VARS passed to service here!
                if (type === 'read') {
                    return {
                        'division': options.division,
                        // 'criteria[0].Value': options.value
                        // ...
                    };
                }
            }
        }
    },
    change: function () {
        var value = this.value();
        alert(value);
        if (value) {
            itemGroupDataSource.one("change", function () {
                itemGroup.current(null);
            }).filter({
                field: "ID",
                operator: "eq",
                value: parseInt(value)
            });
            itemGroup.enable();
        } else {
            itemGroup.enable(false);
        }
        itemGroup.select(0);
    }
}).data("kendoDropDownList");
var itemGroupDataSource = new kendo.data.DataSource({
    //type: "odata",
    serverFiltering: true,
    transport: {
        read: {
            url: VIPApiUrl + "GetItemGroup",
            dataType: "json",
            async: false,
            type: "POST",
        }
    }
});I 

我需要访问 json 的控制器:

#region GetItemGroup
    [HttpPost]
    public List<ItemGroupsDTO> GetItemGroup(JObject jsonData)
    {
        dynamic json = jsonData;
        string x = null; //intentionally pass null values
        string division = json.division;

        List<ItemGroupsDTO> ItemGroups = new List<ItemGroupsDTO>();
        var ItemGroupEOList = new VIPItemGroupBOList();

        ItemGroupEOList.Load(x, x, division, x, x, x, x, x, x, x, false);
        foreach (var d in ItemGroupEOList)
        {
            var ItemGroup = new ItemGroupsDTO();
            ItemGroup.Code = d.Code;
            ItemGroups.Add(ItemGroup);
        }
        return ItemGroups;
    }
    #endregion

KendoUI 级联下拉列表 -- 从下拉列表中检索 json 数据以在控制器中使用

好的,

我通过将itemGroup数据源中的参数映射更改为:

parameterMap: function (options, operation) {
            return {
                division: options.filter.filters[0].value
            }
        }

并将值字段更改为:

dataValueField: "CodeAndDescription",

所以我猜我部分没有给 EO 正确的信息,但希望这对 Jam 中的某人有所帮助。