jqGrid formatCell事件没有触发

时间:2011-07-18 11:31:54

标签: jqgrid

由于某些原因(我不知道),事件'formatCell'不会触发(不显示警告消息)。见下面的代码:

$("#jqgrid").jqGrid({
            datatype: "json",

            colNames: ['CurrecncyID', 'Currency', 'Value', 'Calculated', 'Value', '%', 'Calculated'],
            colModel: [
                        { name: 'CurrecncyID', index: 'CurrecncyID', hidden: true, width: 40 },
                        { name: 'CurrencyName', index: 'CurrencyName', width: 150 },
                        { name: 'FullPrice', index: 'FullPrice', width: 100, editrules: { custom: true, custom_func: priceCheck }, editable: true, align: 'right', formatter: priceFormatter },
                        { name: 'CalcFullPrice', index: 'CalcFullPrice', width: 100, align: 'right', formatter: priceFormatter },
                        { name: 'ActualPrice', index: 'ActualPrice', width: 100, editrules: { custom: true, custom_func: priceCheck }, editable: true, align: 'right', formatter: priceFormatter },
                        { name: 'Precent', index: 'Precent', width: 100, align: 'right', formatter: 'integer', formatoptions: { prefix: "% "} },
                        { name: 'CalcActualPrice', index: 'CalcActualPrice', width: 100, align: 'right', formatter: priceFormatter },
                    ],
            onSelectRow: function (id) {
                if (id && id !== lastsel) {
                    jQuery('#jqgrid').restoreRow(lastsel);
                    jQuery('#jqgrid').editRow(id, true);
                    lastsel = id;
                }
            },
            formatCell: function (rowid, cellname, value, iRow, iCol) {
                alert("before edit");
            },
            jsonReader: {
                repeatitems: false
            },
            rowNum: 20,
            rowList: [10, 20, 30],
            pager: '#jqpager',
            sortname: 'CurrecncyID',
            viewrecords: true,
            sortorder: "desc",
            caption: "Prices List",
            autowidth: true,
            height: "100%",
            loadtext: "Loading...",
            editurl: "/handlers/myurl.ashx"
        });`

1 个答案:

答案 0 :(得分:1)

jqGrid中使用了三个主要editing modesformatCell事件是cell editing mode的一部分。如果使用editRow并且restoreRow是inline editing mode的一部分,则不会触发。在使用内联编辑模式的情况下,您可能需要使用custom editable element