kendo ui treelist popup 模式下 实现下拉框控件形式展示

1、在列后面增加editor和template属性,其中levelDropDownEditor是一个方法,LvDisplayName是下拉框的Text值的字段名(用于在列表里显示)

1
2
3
4
5
columns: [
    { field: "Name", expandable: true, title: "名称", width: 250 },
    { field: "Code", title: "编号" },
    { field: "Lv", title: "级别", width: "180px", editor: levelDropDownEditor, template: "#=LvDisplayName#" }
]

2、实现levelDropDownEditor方法,其中的DropdownlistValue,是我加上的特殊标识,用于后台的数据读取,因为后台自定了一个字段名叫:"LvDropdownlistValue"。

复制代码
    function levelDropDownEditor(container, options) {
        var jqueryElement = $('<input required name="' + options.field + 'DropdownlistValue" />');
        jqueryElement
            .appendTo(container)
            .kendoDropDownList({
                autoBind: true,
                dataTextField: "DisplayCode",
                dataValueField: "ParaCode",
                dataSource: {
                    transport: {
                        read: {
                            dataType: "jsonp",
                            url: "@Url.Content("~/BaseInfoManagement/Department/GetDepartmentLevelList")",
                        }
                    }
                },
                value: options.model.Lv,
                dataBound: onDataBound
            });
    }
复制代码

3、后台update方法的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public JsonResult Update()
        {
            dvaContext context = new dvaContext();
            JsonResult json = new JsonResult();
            var tempObj = new Cust_department_info();
            if (ModelState.IsValid)
            {
                string jsonData = this.Request["models"];
                List<Cust_department_info> lst = JsonConvert.DeserializeObject<List<Cust_department_info>>(jsonData);
                foreach (var obj in lst)
                {
                    var objNew = context.department_info.Find(obj.ID);
                    List<department_info> children = context.department_info.Where(m => m.ParentCode == objNew.Code).ToList();
                    objNew.Name = obj.Name;
                    objNew.Code = obj.Code;
                    objNew.Lv = obj.LvDropdownlistValue.ParaCode;
                    foreach (var b in children)
                    {
                        b.ParentCode = objNew.Code;
                    }
                }
                context.SaveChanges();
            }
            json.Data = new { success = true, msg = "更新成功!" };
            return json;
        }

  

posted @   星星c#  阅读(538)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示