ฟังก์ชั่น jqGrid ไม่ได้กำหนด editRow และ saveRow ไม่ทำงาน

คิดว่านี่เป็นวิธีแก้ไขง่ายๆ แต่หลังจากลองใช้วิธีแก้ปัญหาอื่นที่โพสต์ใน SO แล้วฉันก็ไม่มีโชคเลย

ฉันได้รับฟังก์ชันที่ไม่ได้กำหนดทุกครั้งที่ฉันเลือกหรือดับเบิลคลิกที่แถว และแต่ละฟังก์ชันเหล่านี้จะเริ่มทำงานใน jqGrid โค้ดและส่วนหัว html ด้านล่าง เกิดข้อผิดพลาดใน onSelectRow และ ondblClickRow เมื่อเหตุการณ์เริ่มทำงาน

ผลลัพธ์ข้อผิดพลาด: ป้อนคำอธิบายรูปภาพที่นี่ป้อนคำอธิบายรูปภาพที่นี่

ลำดับการโหลดส่วนหัว:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://trirand.com/blog/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="http://trirand.com/blog/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css" />
<link rel="stylesheet" type="text/css" media="screen" href="http://trirand.com/blog/jqgrid/themes/ui.jqgrid.css" />

รหัส JS สำหรับ jqGrid:

var lastSel;

editParams = {
    "successfunc": null,
    "url": '/submit/adjustments',
    "extraparam": {
        UserAdj: function() {
            var sel_id = $('#rowed1').jqGrid('getGridParam', 'selrow');
            var value = $('#rowed1').jqGrid('getCell', sel_id, 'user_adj_order');
            return 'test';
        },
        arg1 : 'test_it_out'
    },
    "aftersavefunc": null,
    "errorfunc": null,
    "afterrestorefunc": null,
    "mtype" : "POST"
}

jQuery("#rowed1").jqGrid({
    url: base_url + 'get/101/items',
    datatype: "json",
    jsonReader: {
        root: function (obj) { return obj.items; },
        id: 'id',
        page: function () { return 1; },
        total: function () { return 1; },
        records: function (obj) { return obj.items.length; },
    },
    loadonce: true,
    colNames:['Vendor', 'Name', 'Price', 'Last Cost', 'Qty OH', 'Qty OO', 'Wks Selling', 'Str Velocity', 'Fleet Velocity', 'Reccomended Buy', 'User Adjustment'],
    colModel:[
        {name: 'vendor_name'},
        {name: 'name'},
        {name: 'price'},
        {name: 'cost'},
        {name: 'qty_OH', sorttype:'int'},
        {name: 'qty_OO', sorttype:'int'},
        {name: 'str_wks_selling', sorttype:'int'},
        {name: 'velocity', sorttype:'int'},
        {name: 'flt_five_wk_vel', sorttype: 'int'},
        {name: 'rec_buy', sorttype: 'int'},
        {name: 'user_adj_order', editable: true}
    ],
    onSelectRow: function(id){
         if(id && id!==lastSel){ 
            $('#rowed1').jqGrid('saveRow', lastSel, editParams);
            lastSel=id; 
         }
       },
    ondblClickRow: function(id) {
        $('#rowed1').jqGrid('editRow', id, true, editParams); 
    },
    rowNum:10,
    rowList:[10,20,30],
    pager: '#prowed1',
    sortname: 'name',
    viewrecords: true,
    sortorder: "desc",
    autowidth: true,
    height: '100%',
    gridView: true,
    'cellSubmit': 'remote',
    editurl: '/submit/adjustments',
    cellurl: '/submit/adjustments'
});

person jasdeepg    schedule 24.10.2014    source แหล่งที่มา


คำตอบ (1)


คุณได้ลองล้างแคชแล้วหรือยัง? หากใช่แต่ยังคงใช้งานไม่ได้ โปรดโพสต์โค้ด html แบบเต็มของคุณด้วย สมมติว่ารหัส JS อยู่ในไฟล์ JS แยกต่างหาก

person user3642922    schedule 25.10.2014
comment
การล้างแคชไม่ใช่วิธีที่ดีในการจัดการกับข้อผิดพลาดในจาวาสคริปต์ โปรดหลีกเลี่ยงการตอบคำถามโดยไม่มีส่วนร่วมในกระทู้ - person carlodurso; 25.10.2014