2

我有一个编辑设置为弹出的网格。

在我的网格模型中,我定义了一个字段级别的唯一性验证,如下所示。我如何知道当前选择的行是什么,这样我就可以避免将我的字段值与同一行的值进行比较?

 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?
4

2 回答 2

3

I am also working with custom validators on a Kendo Grid Popup Window. I used the following code to obtain the model:

var m = $(input).closest('.k-popup-edit-form').data('kendoEditable').options.model;

I prefer this mechanism because I don't have refer to the grid object, making the code more portable from page to page.

于 2014-11-13T17:49:23.800 回答
2

也许是一个有点棘手的解决方案,但它应该可以工作...... DataSource 中的每条记录都有一个由 Kendo UI 分配的唯一 ID。这些uid, for popupediting 在窗口中使用,这样 Kendo UI 可以轻松识别正在编辑的记录,而无需保存状态。你也应该这样做。

你的功能只需要做:

var uid = $(input).closest(".k-popup-edit-form").data("uid");
var item = grid.dataSource.getByUid(uid);

现在,item包含正在编辑的记录的所有字段。

于 2013-07-26T00:28:31.270 回答