使用 MultiSelect 具有自定义弹出编辑器的 Kendo Grid - 无法获取模型中的选定项目

2024-04-20

所以标题几乎说明了一切。我正在尝试将新的 MultiSelect 小部件合并到网格的自定义弹出编辑器模板中。

我正在使用数据属性初始化方法并从远程数据源读取下拉选项。这一切都工作正常,但我无法将所选项目的值放入模型中。

当我保存行时,数据数组将发送到服务器,表示在 MultiSelect 中选择的第一个数据项,而不是以逗号分隔的选定值列表。

有什么想法如何将 MultiSelect 值(所选值的列表/数组)放入网格模型中?

Thanks

编辑:我现在使用了一种解决方法,但我有兴趣知道是否有“正确的方法”来使用网格的多重选择。

解决方法是将这样的内容添加到网格配置中:

save: function(e) { 
    e.model.items = $('#select_items').data("kendoMultiSelect").value();
}

这是弹出编辑器模板的相关部分:

<input name="select_items" id="select_items" data-value-field="id" 
data-text-field="description" data-source="itemsDataSource" 
data-role="multiselect" data-auto-bind="false" data-item-template="itemList">

我没有select_items在模型定义中:我使用上面的解决方法将 MultiSelect 的值复制到items这是模型中的。这似乎有效,我只是不知道为什么有必要。


用于使用MultiSelect在网格中,有几个问题需要考虑:

  1. 网格编辑器仅支持列类型string, boolean, number and date。因为你想要保存一个数组......让我们说string你必须解决这个问题。
  2. 由于您正在从服务器接收值数组,因此您必须使用template将其序列化为string为了显示从服务器接收到的值。
  3. Kendo UI 无法猜测您想要使用多选作为输入,因此您必须提供和editor功能。

让我们解决所有这些问题:

为了解决以下问题array of string最简单的解决方案是不对 KendoUI 说出任何有关接收内容的信息。

For the template,我将使用 JavaScriptjoin方法将所有值放在一起,并用“,”分隔。就像是:

{ field: "Cities", template: "#= Cities.join(', ') #" }

最后对于编辑器,我使用:

{ field: "Cities", template: "#= Cities.join(', ') #", editor : citiesEditor }

function citiesEditor(container, options) {
    $("<select multiple='multiple' data-bind='value : Cities'/>").appendTo(container).kendoMultiSelect({
        dataSource: citiesDS
    });
}

在我的情况下哪里citiesDS只是一个array of string带有有效城市的名称。

var citiesDS = [
    "Boston", "Kirkland", "London", "New York", "Philadelphia", "Redmond", "Seattle", "Tacoma"
];

当您更新(保存)时,它会向主机发送一个array包含城市的字符串Cities field.

示例:这里http://jsfiddle.net/OnaBai/Q2w7z/ http://jsfiddle.net/OnaBai/Q2w7z/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MultiSelect 具有自定义弹出编辑器的 Kendo Grid - 无法获取模型中的选定项目 的相关文章

  • 如何在 Kendo UI 中获取下拉菜单的所选项目的文本?

    我正在使用 Kendo UI 控件 我想在jquery中获取下拉列表的选定文本 我使用过这个语法 ddl data kendoDropDownList text 我可以在除 IE 之外的所有浏览器中获取文本 我不知道为什么这在 IE 中不起
  • Jquery validate 隐藏 kendo-ui 控件

    我有一个表格使用kendo ui numericTextBox Html LabelFor p gt p Cost Html TextBoxFor p gt p Cost new autocomplete off 然后 我绑定它 使其与 j
  • Kendo UI 网格突出显示所选行

    我有一个 Kendo 2013 2 716 网格 其中包含一个编辑命令 编辑按钮位于第一列 和 40 多个其他列 我没有为网格设置可选集 填充网格后 我可以将鼠标放在 编辑 命令列上 每个 编辑 按钮会依次突出显示 当我单击其中一个时 我的
  • 如何在 Kendo Grid 的每一行中添加自定义按钮

    我正在尝试将自定义按钮添加到 Kendo 网格的每一行 但我没有得到所需的输出 所以我的要求是向每一行添加动态按钮 然后单击这些按钮 我需要处理一些我需要的东西要传递给该按钮单击的几个列值 我试过类似的东西 Html Kendo Grid
  • 以编程方式设置网格排序

    是否可以在读取数据之前以编程方式设置 KendoUI 数据源的排序参数并避免第二个服务器读取 范围是对特定用户交互设置默认排序 如何 这是我想要做的一个例子 因为答案没有切中要害 或者也许我不明白事情是如何运作的 我定义了一个具有初始排序的
  • 如何通过按钮选择或不选择剑道网格

    我有一个网格 在网格定义中启用了选择模式 selectable true 我需要通过按钮使网格不可选择 我尝试了这个 但它不起作用 disableKendoGrid click function var grid myGrid data k
  • Kendo Grid 导出到 Excel 时出错“无法读取 jQuery.js 文件中未定义的属性‘长度’”

    我正在尝试将剑道网格导出到 Excel 然后我在控制台中出现错误 如果有人知道的话请帮助我 提前致谢 angular js 13920 TypeError Cannot read property length of undefined a
  • 使用 Knockout-Kendo.js 动态启用/禁用 kendo 日期选择器

    我正在尝试使用 Knockout Kendo js 根据选择的选定值启用 禁用 kendo 日期选择器 HTML
  • Kendo Multiselect值设置Bug

    我在剑道多重选择方面遇到了这个奇怪的问题
  • 特定组件的自定义样式应用于 Angular 6 中的所有组件

    ui 网格 我试图将自定义样式应用于特定组件 我想更改该特定组件的字体大小 但是当我在该特定组件 css 文件中编写 css 代码时 并且在加载该组件后 该样式将应用到所有其他组件也 以下是css文件中的代码 k grid td font
  • 如何从 Kendo 网格中删除所有行

    我在用Kendo grid 我想从中删除所有行Kendo grid using JavaScript 我使用 for 循环删除了它们 但我想找到删除所有行的最佳方法 尝试按照代码进行操作 var grid Grid data kendoGr
  • Kendo 自动完成显示两个建议列表

    我的 Kendo 自动完成控件成功检索 Json 列表 不幸的是 它调用了 MVC 控制器方法两次并创建了两个建议列表 重复列表直接显示在第一个列表后面 当从第一个建议列表中选择一个值时 该列表会消失 但重复列表仍然可见 我正在使用自动完成
  • 在 Kendo 网格读取操作中发送附加参数

    我有一个剑道网格 如下所示 Html Kendo Grid
  • Kendo UI 数据源 - 过滤相关数据

    我在过滤相关数据 多对多 的剑道数据源时遇到问题 我正在使用 ASP NET WebAPI2 和 DataSourceRequest 来捕获服务器上的请求 然后使用 IQueryable 上的 ToDataSourceResult 扩展方法
  • 如何刷新 Kendo UI 网格

    我正在尝试刷新 Kendo UI 网格 但尚未成功 有人可以告诉我我错过了什么或我做错了什么吗 我有以下代码 cshtml btnRefresh click function e ajax type POST url Url Content
  • 如何更改 Kendo 警报标题?

    我正在使用 Kendo 警报并想更改其标题 默认标题是 url 名称 请参阅下面的链接 图片 我想使用自己的标题 如何更改 图像剑道警报 https i stack imgur com AscDa png 剑道警报 kendo alert
  • Kendo 可排序:无法编辑可排序表内的文本输入

    我有以下可排序表 其中包含可排序行 http demos telerik com kendo ui sortable events http demos telerik com kendo ui sortable events tbody
  • 获取剑道网格中的点击事件

    我正在尝试获取 Kendo Grid 的单击事件 以便我可以将内容绑定到 Shift 和 Ctrl 单击 我无法使用 Kendo 提供的固有多选功能 因为它不支持拖放 当我在 dataBound 事件之后创建函数时 我的函数会在单击时被调用
  • 在剑道网格中显示动态图像

    我想在剑道网格中填充动态图像 我正在获取 json 数据 我有以下代码 var grid timeSegmentGrid kendoGrid var icon dataSource transport read function optio
  • Kendo 模块和 RequireJS (r.js) 表现不佳。 (加载时出错)

    我在用Kendo UI版本2013 1 514 and RequireJS r js版本2 1 6 我的项目在标准下完美运行RequireJS按需加载 但是 当我尝试使用优化器时 任何 Kendo 都不会加载 包括其中任何一个都会引起著名和

随机推荐