任何人都可以告诉我如何对一个特定列进行内联编辑false,但是当您编辑colum可编辑的特定行时,例如 -
{name:'product_image', index:'ProductId', width:25, align:'right', editable:true, edittype:'file'}
,
这很有效,我可以通过选择行并单击编辑按钮<然后我将看到编辑对话框,然后我可以更改所述列的值。我想在网格视图中只读取列,但是,我找到了以下内容 -
{name:'product_image', index:'ProductId', width:25, align:'right', editable:false, edittype:'file',editoptions:{readonly: false}},
然而,这只会使列只读并且在编辑模式下我无法更改值。
$("#list").jqGrid({
url:'products.php?storeId=<?php echo $_SESSION["valid_store"]; ?>',
datatype: 'xml',
mtype: 'GET',
colNames:['Product Id','Product Description','Department','Category','Price','Sale Price','Quantity','Extended Description','Web Item','Image'],
colModel :[
{name:'ProductId', index:'ProductId', width:20},
{name:'product_name', index:'product_name', width:50, editable:true, edittype:'text', search:true, stype:'text'},
{name:'DepartmentName', index:'DepartmentName', width:40,sortable: false, editable: true, edittype: "select"},
{name:'CategoryName', index:'CategoryName', width:40,sortable:false, editable:true, edittype:'select'},
{name:'price', index:'price', width:15, align:'right', editable:true, edittype:'text'},
{name:'sale_price', index:'sale_price', width:15, align:'right', editable:true, edittype:'text'},
{name:'product_qty', index:'product_qty', width:10, align:'right', editable:<?php if($edit_qty == 1){echo "true";}else{echo "false";} ?>, edittype:'text'},
{name:'product_description', index:'product_description', width:100, sortable:false, editable:true, edittype:'text'},
{name:'web_item', index:'web_item', width:15,sortable:false, editable:true, edittype:'select',editoptions:{value:{1:'True',0:'False'}}},
{name:'product_image', index:'ProductId', width:25, align:'right', edittype:'file', editable: false},
],
loadComplete:function(){
$("#list").setColProp('DepartmentName', { editoptions: { value: departments} });
$("#list").setColProp('CategoryName', { editoptions: { value: categories} });
},
pager: '#pager',
rowNum:40,
rowList:[10,20,30,40,50,60,70,80,90,100],
sortname: 'ProductId',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'Products',
autowidth: true,
height: tableHeight,
cellEdit: true,
loadtext: 'Loading Products...',
cellurl: 'edit_product.php?storeId=<?php echo $_SESSION["valid_store"]; ?>',
editurl: 'edit_product.php?storeId=<?php echo $_SESSION["valid_store"]; ?>',
}).navGrid('#pager',
{
del: false,
add: <?php if($add_products == 1){echo "true";}else{echo "false";}?>,
edit: true,
search: true
},
{jqModal:true,closeAfterEdit: false,recreateForm:true,onInitializeForm : function(formid){
$(formid).attr('method','POST');
$(formid).attr('action','');
$(formid).attr('enctype','multipart/form-data');
},
beforeShowForm:function(form){
$("#product_image", form).attr("disabled", "false");
},
由于
答案 0 :(得分:1)
如果我目前了解您的问题,您可以在readonly
回调内的编辑表单中设置$("#product_image")
字段的beforeShowForm
属性。有关相应的代码示例,请参阅the answer或this one。
更新:您发布的代码可以看到您使用单元格编辑(cellEdit: true
)。不支持使用cell editing以及jqGrid的其他编辑模式(form editing或inline editing)。
cellEdit: true
的使用可能是偶然的?如果你应该删除解决问题的选项。
如果确实需要使用单元格编辑,可以在“product_image”列中添加“not-editable-cell”类。您可以在colModel中使用classes: "not-editable-cell"
,也可以根据需要动态制作(请参阅the demo中的the answer)。该类将仅通过单元格编辑使用,并将被表单编辑忽略。
如果您确实需要同时使用单元格编辑和表单编辑,则必须在表单开始之前致电restoreCell
或saveCell
(请参阅the documentation)编辑(例如在beforeInitData中)。您可以在最后一次调用的beforeEditCell回调中保存方法的所有参数。
对您的代码的最后一句话:对于两个列index:'ProductId'
和ProductId
,您使用product_image
似乎很奇怪。是否可能输入错误?