Как добавить строку в подсетку?или как получить первичный ключ из родительской строки? - PullRequest
1 голос
/ 24 августа 2010

Я использую ASP.MVC и jqgrid 3.7.2. Данные загружаются нормально в сетку и подсеть. Обновление основной части таблицы прекрасно работает. Я могу обновить или удалить строку из подсетки, так как одно из полей в подсети является первичным ключом родительской строки. Но при попытке добавить строку, когда она отправляется обратно на сервер, у меня возникают проблемы с получением идентификатора родительской строки. Все остальные значения подсетей публикуются, как и ожидалось. Я думал о попытке получить «выбранную» строку родительского элемента, но родительская строка не была выбрана, поэтому я не уверен, что делать с получением идентификатора родительского ряда Id (первичный ключ) в основной таблице, поэтому он будет внешним ключом в таблице подробностей. Когда в подсетке есть какие-либо данные, я также могу получить идентификатор родителя, поскольку все строки моей подсетки имеют это скрытое поле. Я заметил, что во время публикации поле Id является частью обратной передачи, но значение равно нулю. Есть идеи? Я использую редактирование с панели навигации.

Ответы [ 3 ]

2 голосов
/ 21 марта 2011

Я только что придумал очень ленивый способ сделать то же самое: я использовал:

            editurl:"datasource/notas_edit.php?pid="+row_id,

Тогда я получаю значение с $ _GET в php ... лениво, но работает!

1 голос
/ 10 ноября 2010
subGridRowExpanded: function (subgrid_id, row_id) {
    var currentRow = $('#UtilitiesGrid').jqGrid('getRowData', row_id);
    var utilityPrimaryKey = currentRow.UtilityId;
...

colNames: ['parentid','subid',...], //insert parentid column, hidden
colModel: [{name:"parentid", index:"parentid", hidden:true, editable:true, 
        editoptions: {
            disabled:true, //dissabled in case colModel->hidden=false
            value:utilityPrimaryKey , //Value for parentid in the add form
        },
            {name:"subid",index:"subid",key:true,hidden:true}
...

$("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{
                    add:true, 
                    del:true, 
                    refresh:true,
                    refreshstate:"current",
                    search:false,
                },
                {},//edit options
                                //add options
                {recreateForm:true //since clearAfterAdd is trueby default, recreate the form so we re-establish value for parent id
                });  
1 голос
/ 25 августа 2010

Я закончил тем, что сохранил первичный ключ, когда строка была расширена. Затем я использовал это значение в опциях добавления для navgrid

subGridRowExpanded: function (subgrid_id, row_id) {
    var currentRow = $('#UtilitiesGrid').jqGrid('getRowData', row_id);
    var utilityPrimaryKey = currentRow.UtilityId`;
    ...

$("#" + subGridTableId).jqGrid('navGrid', "#" + pagerId, { edit: true, add: true, del: true, search: false, view: false, refresh: true },
     ...
     { // Add Options
         reloadAfterSubmit: true,
         afterSubmit: CheckForError,
         closeAfterAdd: true,
         url: "/Options/AddUtilityPwsId/" + utilityPrimaryKey
     },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...