Jqgrid,添加后不清楚某些字段

时间:2012-07-17 12:15:47

标签: jquery jqgrid jqgrid-asp.net

我之前已经问过这个问题,但当时还没有取得成功,但是我希望这一次我会更幸运。

我有一个场景,我需要在添加保存操作后继续填充jqgrid模式上的某些字段。 (此时所有字段都被清除/重置为默认状态)。它们对用户不可见,因此当我再次尝试保存时,验证会提示我输入日期/经理/班次。我已经尝试了各种尝试来纠正这一点,以至于没有成功

我知道它可能,因为当一个人编辑并点击保存时,表单不会被清除。 (我希望我能在保存后选择性地做到这一点)

我的屏幕看起来像这样。

添加

enter image description here

编辑时

enter image description here

这个想法是当用户捕获时,他们不需要更新日期,班次和管理员整个时间,因为多个记录一次性被这些键集捕获,并且每次去重新选择这些值都会非常烦人。

添加时,表单值通过beforeShow钩子更新。 (并且编辑它将被忽略,因为我需要使用网格中的值,(如果出现错误)

代码段

    DataGrid.navGrid('#pager', { edit: true, add: true, del: true, search: true },
             editItems,
            {
                width: 600, 
                url: URL_add,
                data: submit_data,
                afterSubmit: function (result) {
                    success:
                    {
                        if (onAfterSubmit != null)
                            onAfterSubmit(result);

                        return Notify("success", result.responseText);
                    }
                    fail: { return Notify("error", result.responseText); }
                },                
                recreateForm: true,
                beforeShowForm: addBeforeShowOptions,
                modal: false,
                overlay: false,
                jqModal: true
            },
...

    var addBeforeShowOptions = function (form) {
        formPattern(form);
        $('#Date', form).val($('#main_Date').val());
        $('#Shift', form).val($('#main_Shift').val());
        $('#ManagerID', form).val($('#main_Manager').val());

        $('#tr_Date', form).hide();
        $('#tr_ManagerID', form).hide();
    }

1 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的另一种方法,而不是在编辑过程中将值注入模态,而是在使用serializeEditData钩子提交数据之前更新postData。

在我的情况下,它基本上像

一样简单
function (postData) {
    postData.Date = $('#main_Date').val();
    postData.DateShift = $('#main_Shift').val();
    postData.ManagerID = $('#main_Manager').val();
}