jqGrid: отправка данных редактирования - PullRequest
4 голосов
/ 29 июля 2010

Я пытаюсь использовать редактирование формы на jqgrid. Когда данные отправляются на веб-сервер, я хочу, чтобы в данных получения / публикации было отправлено дополнительное поле.

Похоже, что editData - это то, что я хочу использовать. Как мне подключить это в navbar?

<script type="text/javascript">
    $(document).ready(function(){ 
        if (jQuery('#ReferenceGrid').attr('role') == 'undefined' || jQuery('#ReferenceGrid').attr('role') == null) {
            var lastSel;
            jQuery('#ReferenceGrid').jqGrid({
                url: '/PlannedWorkOrder/Items/',
                datatype: 'json',
                postData: { referenceNumber: $('#reference').text() },
                colNames: ['Platinum Part Number', 'Quantity'],
                colModel: [
                    { name: 'PlatinumPartNumber', index: 'PlatinumPartNumber', width: 300, sortable: false, editable: true },
                    { name: 'Quantity', index: 'Quantity', width: 300, sortable: false, editable: true, editrules:{integer: true}  },
                ],
                jsonReader: {
                    cell: "",
                    id: "PlatinumPartNumber",
                    repeatitems: false
                },
                search:false,
                viewrecords: true,
                height: '100%',
                sortorder: 'desc',
                caption: 'Details',
                altRows: true,
                pager : '#gridpager',
                pgbuttons: false,
                pginput: false,
                pgtext: false,
                viewrecords: false,
                editurl: '/PlannedWorkOrder/Item/'
            })
            jQuery("#ReferenceGrid").navGrid('#gridpager', { add: true, edit: true, search: false });
        }
        else {
            $("#ReferenceGrid").setGridParam({ postData: { firstName: $('#Reference').val(), lastName: $('#Reference').val() } });
            $("#ReferenceGrid").trigger("reloadGrid")
        }
    });

</script>

1 Ответ

10 голосов
/ 29 июля 2010

Чтобы добавить дополнительные параметры, которые будут отправлены во время добавления / редактирования данных при редактировании формы, вы можете использовать editData:

jQuery('#ReferenceGrid').jqGrid('navGrid',"#gridpager",
    {},
    {editData: {firstName: $('#Reference').val(),
                lastName: $('#Reference').text()}}, // edit options
    {editData: {firstName: $('#Reference').val(),
                lastName: $('#Reference').text()}); // add options

Кроме того, ваша конструкция с jQuery('#ReferenceGrid').attr('role') выглядит немного странно. Возможно, вы найдете решение той же проблемы в моем старом предложении Как фильтровать данные jqGrid, НЕ используя встроенное поле поиска / фильтра Я рекомендую вам использовать postData как функцию: используйте

postData: { referenceNumber: function() { return $('#reference').text(); } },

вместо

postData: { referenceNumber: $('#reference').text() },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...