jTable主记录ID未在子记录的更新请求中发送

时间:2014-02-07 10:32:15

标签: javascript jquery-jtable

  $('#PermissionGroupGrid').jtable({
        ajaxSettings: {
            type: 'GET',
            dataType: 'json'
        },
        sorting: true,
        paging: true,
        useBootstrap: true,
        pageSize: 5,
        title: 'List of Permission Group',
        actions: {
            listAction: '/PermissionGroup/List',
            deleteAction: '/PermissionGroup/Delete',
            updateAction: '/PermissionGroup/Update',
            createAction: '/PermissionGroup/Create'
        },
        defaultSorting: 'PermissionGroupName ASC',
        fields: {
            Id: {
                key: true,
                create: false,
                edit: false,
                list: false
            },
            Permissions: {
                title: 'Permissions',
                width: '5%',
                sorting: false,
                edit: false,
                create: false,
                display: function (permissionData) {
                    var $img = $('<img src="../../Images/list_metro.png" title="Assign Permissions" />');
                    $img.click(function () {
                        console.log(permissionData);
                        console.table(permissionData);
                        $('#PermissionGroupGrid').jtable('openChildTable',
                                $img.closest('tr'),
                                {
                                    ajaxSettings: {
                                        type: 'GET',
                                        dataType: 'json'
                                    },
                                    title: permissionData.record.PermissionGroupName + ' - Permissions',
                                    actions: {
                                        listAction: '/Permission/ListPermission?PermissionGroupId=1',
                                        deleteAction: '/Demo/DeleteExam',
                                        updateAction: '/Demo/UpdateExam',
                                        createAction: '/Demo/CreateExam'
                                    },
                                    fields: {
                                        PermissionGroupId: {
                                            type: 'hidden',
                                            defaultValue: permissionData.record.Id
                                        },
                                        Id: {
                                            key: true,
                                            create: false,
                                            edit: false,
                                            list: false
                                        },
                                        PermissionName: {
                                            title: 'Permission Name'
                                        }
                                    }
                                }, function (data) {
                                    data.childTable.jtable('load');
                                });
                    });

                    return $img;
                }
            },
            PermissionGroupName: {
                title: 'PermissionGroupTitle'
            }
        }
    });

    $('#PermissionGroupGrid').jtable('load');

当任何子记录请求更新时,子记录的Id将在GET请求中发送,但不会在主记录的Id中发送。我完全按照jtable.org上的演示。当console.log 'permissionData.record.Id'我可以看到主记录的ID。 FTR,Master和Child表的键列都有名称'Id'。

有人可以建议一个解决方案吗?

1 个答案:

答案 0 :(得分:0)

基于jTable 2.4.0调试,defaultValue仅用于创建表单。如果您正在编辑现有项目记录,则使用[fieldName]。在您的案例记录中[&#34; PermissionGroupId&#34;]。这意味着您需要在子记录对象上包含PermissionGroupId字段才能使其正常工作。