我有一个Grid,其编辑设置为Popup。
在我的网格模型中,我已经为下面的唯一性定义了字段级验证。我怎么知道哪个是当前选择的行,所以我可以避免将我的字段值与同一行的值进行比较?
model: {
id: "id",
fields: {
id: {
nullable: false,
editable: false,
hidden : true
},
"timeStamp": {
type: "date",
validation: { // validation rules
required: true, // the field is required
unique: function (input) {
if (!input.is("[name=timeStamp]")) {
return true;
}
input.attr("data-unique-msg", '${msg.UNIQUE_TIME}' );
var data = grid.dataSource.data();
//HOW CAN I KNOW WHICH ROW Is currently selected?
答案 0 :(得分:2)
我还在Kendo Grid Popup Window上使用自定义验证器。我使用以下代码来获取模型:
var m = $(input).closest('.k-popup-edit-form').data('kendoEditable').options.model;
我更喜欢这种机制,因为我没有引用网格对象,使得代码在页面之间更加便携。
答案 1 :(得分:1)
可能是一个有点棘手的解决方案,但它应该有效...... DataSource中的每条记录都有一个由Kendo UI分配的唯一ID。这些uid
用于popup
编辑在窗口中使用,使得Kendo UI可以轻松识别正在编辑的记录,而无需保存状态。你也应该这样做。
您的功能只需要:
var uid = $(input).closest(".k-popup-edit-form").data("uid");
var item = grid.dataSource.getByUid(uid);
现在,item
包含正在编辑的记录的所有字段。