1

需要有关在剑道网格中添加新记录的帮助。我有一个带有外键字段的网格。网格由从 web 方法返回的带有子对象的 json 数据填充。它看起来像这样:

[
{
"classe_iva": {
  "id_classe_iva": 5,
  "desc_classe_iva": "Esente",
  "note_classe_iva": null
},
"id_iva": 37,
"desc_iva": "bbb",
"codice_iva": "bbb",
"imposta": 2,
"indetr": 2,
"id_classe_iva": 5,
"note": "dddddfsf",
"predefinito": false,
"id_company": 4
},
{
"classe_iva": {
  "id_classe_iva": 6,
  "desc_classe_iva": "Escluso",
  "note_classe_iva": null
},
"id_iva": 52,
"desc_iva": "o",
"codice_iva": "jj",
"imposta": 1,
"indetr": 1,
"id_classe_iva": 6,
"note": "l",
"predefinito": false,
"id_company": 4
}
]

这是剑道数据源中使用的 schema.model:

model = {
    id: "id_iva",
    fields: {
        id_iva: { type: "string", editable: false },
        desc_iva: { type: "string" },
        codice_iva: { type: "string" },
        imposta: { type: "number" },
        indetr: { type: "number" },
        id_classe_iva: {type: "string"},
        note: { type: "string" },
        predefinito: { type: "boolean" },
        id_company: { type: "number" }
    }
}

.. 下面显示了网格列格式:

toolbar = [{
    name: "create",
    text: "Aggiungi nuova aliquota IVA"
}];
columns = [
        { field: "desc_iva", title: "Descrizione", width: 45 },
        { field: "codice_iva", title: "Codice", width: 45 },
        { field: "imposta", title: "Imposta", width: 45 },
        { field: "indetr", title: "Indetr", width: 45 },
        { field: "classe_iva.desc_classe_iva", title: "Classe IVA", width: 200, editor: categoryDropDownEditor, template: "#= classe_iva ? classe_iva.desc_classe_iva : 1 #", defaultValue: { id_classe_iva: 1, desc_classe_iva: "Acq. Intra-UE" } },
        { field: "note", title: "Note", width: 45 },            

        {
            command: [{
                name: "destroy",
                text: "Elimina",
                confirmation: "Sei sicuro di voler eliminare questa voce?"
            } ,              
            {
                name: "edit",                   
                text: {
                    edit: "Modifica",
                    update: "Aggiorna",
                    cancel: "Cancella"
                }
            }
            ]

        }
];

当我编辑一行时,这些设置工作正常,并且网格将正确的内容显示到组合框字段中。问题是当我单击“添加新记录”按钮时,因为当它尝试添加新行时,它没有找到子对象字段“classe_iva”。

如果我将 column.field 更改为此

{ field: "id_classe_iva", title: "Classe IVA", width: 200, editor: categoryDropDownEditor, template: "#= id_classe_iva ? id_classe_iva : 1 #", defaultValue: { id_classe_iva: 1, desc_classe_iva: "Acq. Intra-UE" } },
        { field: "note", title: "Note", width: 45 }

添加按钮工作正常,但是当加载网格时,列 id_classe_iva 没有向我显示 classe_iva.desc_classe_iva 字段...

我该如何解决这个问题??^?提前致谢。

4

1 回答 1

0

为了解决这个问题,我使用了一种解决方法:

引发错误的原因是,在 field.template 的声明中,有一个未声明的变量(classe_iva):

 { field: "id_classe_iva", title: "Classe IVA", width: 200, editor: categoryDropDownEditor, template: "#= classe_iva ? classe_iva.desc_classe_iva : 1 #", defaultValue: { id_classe_iva: 1, desc_classe_iva: "Acq. Intra-UE" } },

然后,我声明了一个全局变量

var classe_iva;

这样,当我添加新记录时,代码不会抛出任何错误,并且通过三元 if,设置了默认值。

希望它会帮助某人。

于 2013-08-30T17:03:34.603 回答