当我在内联编辑期间更改特定列的值时,我想要动态更改同一行另一列的可编辑属性值。下面是我的代码的一部分:jqgrid内嵌编辑:动态设置可正确编辑另一列的列
{ name: "admin", width:250, editable:<?php echo $owner; ?>, edittype:"custom", editoptions: {
custom_element: myelem,
custom_value:myvalue,
dataEvents: [{
type: 'change',
fn: function (e) {
var $this = $(e.target), $td, rowid;
var radSel = $(e.target).val(); //alert(radSel);
if(radSel == "No"){
if ($this.hasClass("FormElement")) {
$("#request").prop("editable", true);
} else {
//alert("you are here!!");
var row = $this.closest('tr.jqgrow');
var rowId = row.attr('id'); //alert(rowId);
$("#" + rowId + '_request').prop("editable", true);
}
}
}
}]
}},
{ name: "request", width: 100},
......
function myelem (value, options) {
var radio1 = document.createElement('input');
radio1.id = 'radY';
radio1.type = 'radio';
radio1.name = 'appr';
radio1.value = 'Yes';
if(value.match(/^Yes.*/)){ radio1.checked = true; }
var radio2 = document.createElement('input');
radio2.id = 'radN';
radio2.type = 'radio';
radio2.name = 'appr';
radio2.value = 'No';
if(value.match(/^No.*/)){ radio2.checked = true; }
var label1 = document.createElement('label');
label1.setAttribute('for', radio1.id);
label1.innerHTML = 'Yes';
var label2 = document.createElement('label');
label2.setAttribute('for', radio2.id);
label2.innerHTML = 'No';
var container = document.createElement('div');
container.appendChild(radio1);
container.appendChild(label1);
container.appendChild(radio2);
container.appendChild(label2);
return container;
}
function myvalue(elem, operation, value) {
if(document.getElementById('radY').checked) {return "Yes";}
else if(document.getElementById('radN').checked) {return "No";}
else {return ""; }
}
当我改变的单选按钮“否”,它确实进入,如果循环(下dataEvents),但可编辑的属性上的“请求”列没有动态设置为true。任何帮助非常感谢。谢谢。
'editable'属性将在开始编辑之前由jqGrid *使用。 **如果要防止动态编辑,必须在相应的现有编辑字段上设置“disable”或“reabonly”属性/属性**,而不是设置“editable”属性。此外,您似乎为自定义编辑字段分配了固定'id'属性(''radN'',''radY'')。这很危险,因为你可以有重复的id。内联编辑允许您同时将多行编辑为一行。在这种情况下,将创建两个具有相同ID的自定义编辑元素,您将遇到问题。 – Oleg 2014-09-23 10:07:34
此外,我建议您在**'
非常感谢@ Oleg ..真的有帮助。你太棒了! – MattO 2014-09-24 11:10:02