Kendo UI和Javascript-添加新记录时无法获取数据

时间:2019-01-07 08:41:56

标签: javascript kendo-ui kendo-grid

打招呼

需要帮助,不确定我做错了哪些部分。

单击添加新记录时,我希望 segmentActive 字段禁用,默认情况下,单选按钮将选中 >。 我设法做到了。但是,当我保存记录时,它不会将值“ y ”提取到数据库中。它将插入null。

$("#grid").kendoGrid({
dataSource: dataSource,
height:400,
sortable: true,  
columns: [ 
    { field: "segmentActive", title:"STATUS", width: "120px" , editor: RadioSegmentActive,
      template: data => data.segmentActive == "y" ? "Yes" : "No" },

    { field: "marketSegmentName", title:"SEGMENT NAME", width: "120px" },

    //Button Name
    { command: [{ name: "edit", text: { edit: "Edit",
                                        update: "Submit", 
                                        cancel: "Cancel"} },
                { name: "destroy", text: "De-active" }], 
                  title: " ", width: "120px" },

],
editable: "inline",
edit: function(e) {
        if (e.model.isNew()) { // Went adding new record    
                $('input[name=segmentActive]').attr("disabled",true);  //disable column STATUS
                radio3.checked = true; // id="radio3" checked
        }
    },   
toolbar: [{ name: "create", text: "Add" }],
pageable: {
            refresh: true,
            pageSizes: true,
            buttonCount: 5
        },          
});  //end of kendo grid

我的RadioSegmentActive函数

function RadioSegmentActive(container, options) {
var guid = kendo.guid();

    $('<input class="k-radio" id="radio3" name="segmentActive" type="radio" value="y" >').appendTo(container);
    $('<label class="k-radio-label" for="radio3">Yes</label>').appendTo(container);  //YES
    $('<br>').appendTo(container); 
    $('<input class="k-radio" id="radio4" name="segmentActive" type="radio" value="n" >').appendTo(container);
    $('<label class="k-radio-label" for="radio4">No</label>').appendTo(container);  //NO
}

先谢谢您。

2 个答案:

答案 0 :(得分:1)

这是剑道-您需要更新绑定到的基础模型:

(defclass Usuari
(is-a USER)
(role concrete)
(pattern-match reactive)
(slot edat (type SYMBOL) (default nil))
(slot sexe (type SYMBOL) (default nil))
(slot estatCivil (type SYMBOL) (default nil))
(slot vehicle (default nil))
(slot social (default nil))
(slot emocionalment (default nil))
(slot esportista (default nil))
(slot tipusMusica (default nil))
(slot professioEscolliries (default nil))
(slot tempsLliure (default nil))
(slot viatge (default nil))
(slot festaPrefe (default nil))
(slot pasarTemps (default nil))
(slot pensar (default nil))
(slot pelicules (type INTEGER) (default 5))
)

答案 1 :(得分:0)

要检查值console.log($('input[id=your_radio_button_id]:checked').val());,然后在检查窗口中检查它是否具有值。我猜不是因为它在数据库记录上为空。 您的编辑功能可以将更新值包含在隐藏的输入中。

edit: function(e) {
    if (e.model.isNew()) { // Went adding new record    
            $('input[name=segmentActive]').attr("disabled",true);  //disable column STATUS
            radio3.checked = true; // id="radio3" checked
            $("#hidden_input").val("y");
    }
}, 

将隐藏的输入放置在收音机旁边

<input type="hidden" id="hidden_input" name="hidden_input">

还可以更改后退代码,以将隐藏字段绑定到Y而不是单选框。