JQGRID - запретить добавление пустой строки после выполнения afterSubmit - PullRequest
0 голосов
/ 30 марта 2012

У меня есть сетка, в которой я поместил пользовательскую кнопку в navgrid для вставки совершенно разных данных в другую таблицу, поэтому я использовал editGridRow («new»,…), где в URL-адресе php я просто размещаю данные в другой таблице.На самом деле я застрял с проблемой, если я отправляю форму, даже если я установил reloadAfterSubmit: false, он добавляет новую пустую строку в сетку…

Вы можете увидеть кусок кода здесь:

jQuery("#"+child_table_id).navButtonAdd("#"+pager_id,
{
caption:"Insert",buttonicon:"ui-icon-arrow-1-se",
onClickButton:function(){ 
    var rows = jQuery("#"+child_table_id).getRowData(); 
    if ( rows.length != 0 ) { 
        jQuery("#"+child_table_id).editGridRow("new",{height:140,width:420,url:"http://.../edit_datatable.php?table_name=mytable&fact=insert&q=1&flag=yes&ref_id="+id_row,
    reloadAfterSubmit:false, 
    recreateForm:true, 
    closeOnEscape:true, 
    closeAfterAdd:true,
    addCaption:'Insert',
savekey: [true,13],
    bSubmit:'Save',
    afterSubmit:function(response, postdata){ alert('inserting to a total different table...'); return {0:true} } 
});
}
},
position:"last",
title:"Insert new step...",
cursor:"pointer"
});

Я даже пытался добавить:

onClickButton:function(){ $("#"+child_table_id).setGridParam({ datatype: 'local' }); }

afterSubmit:function(response, postdata){ return {0:true} },

onclickSubmit : function(params, posdata) {return {0:true} },

afterComplete:function(response, postdata, formid) { $("#"+child_table_id).setGridParam({ datatype: 'json' }); }

, но он все равно добавил строку в сетке…

Так, как я могу помешать jqGrid добавить новую пустую сетку и обновитьсетка?…

1 Ответ

1 голос
/ 30 марта 2012

Вы писали о «вставке совершенно разных данных в другую таблицу», но добавляете кнопку на панель навигатора сетки "#"+child_table_id, а ваш код внутри обратного вызова onClickButton добавляет новую строку в той же сетки * * 1005

jQuery("#"+child_table_id).navButtonAdd("#"+pager_id, { ...
    onClickButton:function(){
        ...
        jQuery("#"+child_table_id).editGridRow("new", ...
    }
 });

Если вы действительно хотите добавить новую строку в другую сетку, вы должны использовать идентификатор другого в editGridRow (например, jQuery("#"+another_table_id).editGridRow("new",...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...