0

我使用jqgrid,在内联编辑中,在用户编辑特定单元格值后,他需要按“Enter”按钮进行更新,但我需要在用户离开单元格时直接更新它。

jQuery代码

<script type="text/javascript">
    $(function () {
        var lastsel;
        var colind = 2;
        jQuery("#list").jqGrid({
            url: '/Home/GetStudents/',
            datatype: 'json',

            mtype: 'POST',
            colNames: ['StudentID', 'FirstName', 'LastName', 'Email'],
            colModel: [
      { name: 'StudentID', sortable: false, key: true },
      { name: 'FirstName', key: true },
      { name: 'LastName', sortable: false, key: true },
      { name: 'Email', width: 200, sortable: false, key: true}],
            cmTemplate: { align: 'center', editable: true },
            pager: '#pager',
            width: 750,
            rowNum: 15,
            rowList: [5, 10, 20, 50],
            sortname: 'StudentID',
            sortorder: "asc",
            viewrecords: true,
            caption: ' My First JQgrid',

            onSelectRow: function (StudentID)
            //  onCellSelect:function(StudentID)
            {


                if (StudentID != lastsel) {

                    jQuery('#list').jqGrid('restoreRow', lastsel);
                    jQuery('#list').jqGrid('editRow', StudentID, true);
                    // jQuery('#list').jqGrid('editCell', StudentID, colind, true);
                    lastsel = StudentID;

                }
            },






            editurl: '/Home/About/',
            //                data: { get_param: selectedDescription },
            caption: "jQgrid Sample"

        });

        jQuery("#list").jqGrid('navGrid', "#pager", { edit: false, add: false, del: false });
    });

</script>
4

1 回答 1

1

我不建议您实现这种行为,因为它会产生验证错误。如果用户只是开始输入一些内容来更改某些文本,则输入的数据可能仍然是错误的。在很短的时间间隔后自动保存数据可以尝试保存绝对错误的数据。

例如,如果用户按错键(如字段中只允许数字的字母),则在保存数据期间将产生错误。

此外,如果用户开始输入一些错误信息(例如,他可以错误地从某个单元格中删除一些长文本),则信息的保存不允许回滚。标准的内联编辑实现支持Esc除了Enter. 我发现Esc关键的支持非常重要。

所以我可以重复一遍,我不建议您实施您在问题中描述的行为。

您应该考虑的另一个选项是使用单元格编辑而不是内联编辑。我个人更喜欢内联编辑,但这是品味的问题。

于 2012-12-04T10:50:14.320 回答