Столбец jqGrid с флажками

Я столкнулся с проблемой с jqGrid.I есть список документов в jqGrid. Первая колонка DocID, вторая - DocName, теперь я хочу еще два столбца с флажками в них, чтобы пользователь мог подписаться на эти документы. Поэтому мне нужны столбцы 3 и столбец 4 с флажками, чтобы пользователь мог проверить любое количество флажков, а затем каждый щелчок флажков мне нужно сделать вызов AJAX с идентификатором документа, чтобы я мог сохранить опцию для этого пользователя, на которую пользователь подписался этот конкретный документ.

Я мог бы сделать два столбца с флажками, и я использовал их с помощью форматирования, но теперь я не могу идти дальше, мне нужно получить идентификатор rowID по щелчку флажка и идентификатор документа строки, в которую был установлен флажок.

ЗДЕСЬ МОЙ СЕТЬ.

jQuery("#doc").jqGrid({
 url: urlDoc + docID,
 datatype: 'json',
 mtype: 'GET',
 colNames:[<!--?php echo (buildCSV(array(_(''), _('Document ID'), _('Document Name'), _('Subscribe'), _('Copy Locally')))); ?-->],
 colModel:[
 {name:'fld_doc2comp_status',index:'fld_doc2comp_status', width:1, editable: false, align:"left", hidden:true},
 {name:'fld_comp_documentid',index:'fld_comp_documentid', width:70, editable: true, align:"left", sortable:false,
 editrules:{required:true}, formoptions:{label:'<!--?php echo (_('Document ID') . ' *');?-->'} },
 {name:'fld_documentname',index:'fld_documentname', editable: true, align:"left", sortable:false,
 editrules:{required:true}, formoptions:{label:'<!--?php echo (_('Document Name') . ' *');?-->'} },
 {name:'fld_subscribe',index:'fld_subscribe', editable: true, formatter:'checkbox', edittype:"checkbox", formatoptions:{disabled:false}, sortable:false, width:60, align:"center"},
 {name:'fld_local',index:'fld_local', editable: true, formatter:'checkbox', edittype:"checkbox", formatoptions:{disabled:false}, sortable:false, width:60, align:"center"}
 ],
 loadComplete: function() {
 jQuery('#doc').setSelection(jQuery('#doc').getDataIDs()[0],true);
 $('.ui-jqgrid-titlebar-close').remove();
 },
 onSelectRow: function(id){
 docID=id;
 },
 width:650,
 height:430,
 rowNum:100,
 viewrecords: true,
 sortable: true,
 sortname: 'fld_comp_documentid',
 sortorder: 'asc',
 pager:"#docpgr",
 pgbuttons:true,
 pginput:true,
 editurl: urlDoc + docID,
 caption: '<!--?php echo _('Document');?-->'
});

Я хочу сохранить поля fld_subscribe и fld_local в базе данных на главном экране, а не через экран редактирования записей. Мне нужно, чтобы пользователь мог изменить fld_local и fld_subscribe для любого документа, просто нажав на этот флажок.

Ждем ваших ответных парней.

1 ответ

Я рекомендую вам посмотреть ответ, который показывает, как привязать клик к флажку к вашему обработчику событий. Демо использует Tree Grid, но код работает точно так же с любым jqGrid.

Кстати, this внутренняя часть loadComplete - это DOM . Он имеет свойство <a href="http://www.w3schools.com/jsref/coll_table_rows.asp" rel="nofollow noreferrer" target="_blank">rows</a>. Первая строка jqGrid - это скрытая пустая строка. Таким образом, <code>id первой видимой строки будет this.rows[1].id. Вы можете проверить, что this.rows.length > 1 а затем использовать this.rows[1].id вместо jQuery('#doc').getDataIDs()[0].

licensed under cc by-sa 3.0 with attribution.