剑道网格的动态默认值
Dynamic default value for Kendo Grid
我想要一个auto increment
列在我的剑道网格。这个字段不是服务器端自动递增的,因为我想让用户看到这个值,并能够改变它。
我目前的解决方案是将click
属性添加到Create
按钮并循环行以找到最大值并增加它。
但是我如何在新创建的行中插入这个值呢?Click
事件发生在创建新行之前。
所以有两种可能的解决方案:
- 有一个变量作为默认值并在我的JS代码中更新它。
- 以某种方式访问新创建的行,并更新值。
function createClick(id) {
var grid = $("#" + id).data('kendoGrid');
var highestRadif = 0;
grid.tbody.find('>tr').each(function () {
var dataItem = grid.dataItem(this);
var radif = dataItem.SRadifReqR;
highestRadif = highestRadif < radif ? radif : highestRadif;
})
alert(++highestRadif);
}
您可以使用Grid的edit
事件将新的generatedId
值添加到新的Grid的model
。
这是他们的文档中的一些解释:
编辑
在用户编辑或创建数据项时触发。
- e。container jQuery,编辑容器元素的jQuery对象,用于封装编辑UI。
- e。模型 kendo.data。Model,要编辑的数据项。使用它的isNew方法来检查数据项是否是新的(创建)或不(编辑)。
- e。发送方 kendo.ui。Grid,触发事件的小部件实例。
我想你们的点击栏应该有这样的内容
//generate id code
vm.newId = ++highestRadif; // we need to store generated Id
grid.addRow();
then on edit event
edit: function(e) {
var model = e.model; // access edited/newly added model
// model is observable object, use set method to trigger change event
model.set("id", vm.newId);
}
注意:您的模式模型的字段必须设置属性editable: true
,因为我们可以使用set
方法更改模型字段的值。此外,如果您的字段模式需要验证,则需要删除它。
model: {
id: "ProductID",
fields: {
ProductID: { editable: true, nullable: true },
}
}
我可以为此在数据源模式中放置一个函数。
schema: {
model: {
id: "id",
fields: {
currencyType: { defaultValue: getDefaultCurrency },
invoiceDate: { type: "date" }
}
}
}
function getDefaultCurrency() {
return _.find(vm.currencyTypes, { id: vm.currencyId });
};
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- HTML范围:动态设置值属性
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- 在动态输入数据的下拉菜单中设置默认值
- 具有动态默认值的 ng 选项
- 在页面加载时将动态值设置为下拉列表中的默认值
- 动态选项中的默认值
- AngularJS-多重选择,动态设置默认值select
- 通过单击SELECT选项,将文本INPUT元素的VALUE动态设置为默认值
- 动态选择并选择默认值
- 剑道网格的动态默认值