jqgrid:不按Enter键更新单元格值

时间:2012-12-04 09:17:17

标签: jquery asp.net-mvc jqgrid

我使用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>

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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