如何获取网格视图的剑道中内联保存事件(编辑记录)上隐藏列的值



下面是我美丽的剑道网格。如果您注意到列 PersonId、NameId 和 AwardTitleId,则它们是隐藏列。

当用户单击编辑按钮以内联编辑记录时,我需要能够从该行中捕获 PersonId、NameId 和 AwardTitleId。问题是,这些列需要隐藏。

如何在内联编辑模式下为这 3 列选择隐藏值?

function directorsOrRecipients(e)
{
    awardTitleId = e.data.AwardTitleId;
    var detailRow = e.detailRow;
    detailRow.find(".childTabstrip").kendoTabStrip({
        animation: {
            open: { effects: "fadeIn" }
        }
    });
    detailRow.find(".directorsOrRecipients").kendoGrid({
        reorderable: true,
        resizable: true,
        dataSource: {
            transport: {
                read: {
                    url: "http://lh/x/api/Awards/directors/" + awardTitleId,
                    type: "GET"
                },
                parameterMap: function (model, operation) {
                    if (operation !== "read" && model) {
                        return kendo.stringify(model);
                    }
                }
            },
            schema: {
                model: {
                    id: "AwardTitleId",
                    fields: {
                        "AwardTitleId": { editable: false, type: "number", nullable: false },
                        "PersonId": { editable: false, type: "number", nullable: false },
                        "NameId": { editable: false, type: "number", nullable: false },
                        "NameFirstLast": { editable: true, type: "string" },
                        "DirectorSequence": { editable: true, type: "number", validation: { min: 1 } },
                        "IsOnBallot": { editable: true, type: "boolean" },
                        "Concatenation": { editable: true, type: "string" },
                        "MoreNames": { editable: true, type: "number", validation: { min: 0 } },
                    }
                }
            }
        },
        columns: [
            { field: "AwardTitleId", title: "Award Title Id", hidden: true },
            { field: "PersonId", title: "Person Id", hidden: true },
            { field: "NameId", title: "Name Id", hidden: true },
            { field: "NameFirstLast", title: "Name", editor: namesAutoComplete },
            { field: "DirectorSequence", title: "Director Sequence", format: "{0:n0}" },
            { field: "IsOnBallot", title: "On ballot?", editor: onBallotDropDownEditor },
            { field: "Concatenation", title: "Concatenation" },
            { field: "MoreNames", title: "More names?", format: "{0:n0}" },
            { command: ["edit"], title: " ", width: 100 }],
        sortable: true,
        sort: { field: "NameFirstLast", dir: "desc" },
        editable: "inline",
        toolbar: [{ name: "create", text: "Add New Director/Recipient" }],
        save: function(a)
        {
            if (a.model.IsOnBallot == true)
            {
                ballot = 1;
            }
            if (a.model.IsOnBallot == false)
            {
                ballot = 0;
            }
            directorData["DirectorSequence"] = a.model.DirectorSequence;
            directorData["IsOnBallot"] = ballot;
            directorData["Concatenation"] = a.model.Concatenation;
            directorData["Operation"] = "I";
            //directorData["moreNames"] = e.model.MoreNames;
            $.ajax({
                url: "http://lh/x/api/awards/directors",
                type: "POST",
                dataType: "json",
                data: directorData 
            }).done(function()
            {
                detailRow.find(".directorsOrRecipients").data("kendoGrid").refresh();
            });
        }
    });
    function onBallotDropDownEditor(container, options)
    {
        var data = [
            { "IsOnBallot": "true" },
            { "IsOnBallot": "false" }];
        $('<input required data-text-field="IsOnBallot" data-value-field="IsOnBallot" data-bind="value:' + options.field + '"/>')
            .appendTo(container)
            .kendoDropDownList({
                autoBind: false,
                dataSource: data
            });
    } 
}
我想

通了。即使隐藏它,您仍然可以通过执行以下操作来获取值:

var hiddenValue = a.model.X;

最新更新