Я создаю новый jqgrid со следующими полями и функциями:
Идентификатор развертывания ',' Ветвь ',' Имя выпуска ',' Идентификатор клиента ',' Количество хостов ',' Комментарии ','Действия
-У меня есть опция множественного выбора на ИСТИНА.
-У меня есть действие редактирования / удаления в каждой строке
-У меня есть панель навигации внизу с опцией ДОБАВИТЬ / Поиск.
Мои действия: когда я добавляю новую запись, я могу добавить поле BRANCH и только комментарий (это работает). Когда я редактирую запись, я могу изменить только комментарий (это тоже работает)
Моя проблема связана с опцией MULTISELECT ...
Если я нажимаю на кнопку EDIT, а MULTISELECT снимает флажок, все работает нормально .. означает, что только COMMENT разрешено изменять.
, но
Если строка выбрана в столбце Multiselect, поле BRANCH становится редактируемым.
Кроме того, я хочу заблокировать другие действия, когда я редактирую одну конкретную строку (значит, не иметь возможности проверить / снять отметку EDIT /Удалить другие строки)
Может кто-нибудь помочь мне сделать тhat?
Спасибо
ps: я пытался с другим кодом / примерами, которые я нашел здесь, но безуспешно.Я не публикую это сейчас, чтобы избежать путаницы.
var lastSel;
$(function(){
$("#list").jqGrid({
data: mydata,
datatype: "local",
colNames:['Deployment id','Branch', 'Release Name','Client id','# of hosts','Comments','Actions'],
colModel:[
{name:'deployment_id',index:'deployment_id',align:"right", sorttype:"int", width:120},
{name:'branch',index:'branch',align:"center", formatter:branchColor,editable: true,edittype:"select",editrules:{required:true},editoptions:{value:"option 1:option1;option2:option2"}},
{name:'release_name',index:'release_name',align:"center"},
{name:'client_id',index:'client_id',align:"right", sorttype:"int", width:60},
{name:'num_hosts',index:'num_hosts',align:"right", sorttype:"int", width:60},
{name:'comments',index:'comments',align:"center", editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"20"}},
{name:'myac', width:80, fixed:true, sortable:false, resize:false, formatter:'actions',formatoptions:{keys:true}}
],
rowList : [20,30,50],
pager: '#pager',
sortname: 'deployment_id',
viewrecords: true,
recordpos: 'right',
sortorder: "asc",
sortable: true,
multiselect: true,
shrinkToFit :true,
viewrecords: true,
onSelectRow: function(id){
//alert("id:"+id);
if (id == null) {
id = 0;
if(id && id!==lastSel){
//$('#list').jqGrid('restoreRow',lastSel);
//$('#list').jqGrid('editRow',id,false);
$("#jqg_list_" + id).attr("disabled","disabled");
lastSel=id;
}
}
else {
var grId = $("#list").jqGrid('getGridParam','selrow');
if(grId){
$("#" + grId + "_branch").attr("disabled","disabled");
$("#" + grId + "_branch").removeClass("editable");
}
}
},
});
// to modify The tool bar on bottom
$("#list").jqGrid('navGrid','#pager',{edit:false, edittitle: 'Modify a Deployment',
add:true, addtitle: 'Add a new Deployment',
del:true, deltitle: 'Delete a Deployment',
nav:{ addCaption: 'Columns'}
},
{// edit option
beforeShowForm: function(form) {
$('#branch', form).attr("disabled","disabled");
},
//seems to be is not qworking
beforeSelectRow: function(rowid, e) { return false; },
},
{// add option
beforeShowForm: function(form) {
$('#branch option[value=""]', form).text('Select a branch')
$('#branch option[value=""]', form).attr("selected", "selected");
$('#branch', form).attr("disabled","");
var ids;
ids = $("#list").getGridParam('selarrrow');
if(ids){
alert('array: ['+ids+']');
alert('id in array[0]: '+ids[0]);
}
},
addCaption: "Add a Deploymet"
},
{// delette option
},
{// Search option
multipleSearch:true
},
{// view option
}
);