我的问题是我想根据选择要编辑的行的单元格的内容在编辑表单中更改可编辑的单元格.我在这个链接上使用了Oleg的例子:JQGrid:根据内容动态设置一个单元格不可编辑,以弄清楚如何将单元格从可编辑更改为不可编辑但我无法获取单元格值以便比较它并决定我是否要更改单元格的编辑选项.
更新的代码:
var Setcelluneditable=function(form) {
return function (form) {
var id = jQuery(list).getGridParam('selrow');
var ret = jQuery(list).jqGrid('getRowData',id);
alert("Arrived="+ret.Arrived);
if (ret.Arrived=='Yes')
{alert("hello"+id);
jQuery(list).setCell(id,'Arrived','',{color:'red'}, editable:'0'});}
}
};
jQuery(list).jqGrid('navGrid',pager,{edit:true,add:true,del:true,search:false,view:true, reload:true},
{
width:colwidth,
height:"auto",
reloadAfterSubmit:true,
closeAfterEdit: true,
recreateForm: true,
ajaxEditOptions: {cache: false},
beforeInitData : Setcelluneditable("#editmod")
},
{
width:colwidth,
height:"auto",
reloadAfterSubmit:true,
closeAfterAdd: true,
recreateForm: true,
drag: false
},
{},
{},
{},
{});
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为我改变了已经构建的网格.
我想我发现了这样做的方法,但在我看来,最好的方法不是:
onSelectRow: function(id){
var ret = jQuery(list).jqGrid('getRowData',id);
if (ret.Arrived=='Yes')
{
jQuery(list).setColProp('Arrived',{editable:false});}
else { jQuery(list).setColProp('Arrived',{editable:true});}}
Run Code Online (Sandbox Code Playgroud)
每次选择一行时我都会更改ColProp.