Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQGrid只读和编辑选项_Javascript_Jquery_Jqgrid - Fatal编程技术网

Javascript JQGrid只读和编辑选项

Javascript JQGrid只读和编辑选项,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,有谁能告诉我如何使内联编辑一个特定列为false,但当您编辑特定行时,例如coln是可编辑的- {name:'product_image',index:'ProductId',width:25,align:'right',edit:true,edittype:'file'}, 这非常有效,我可以通过选择行并单击编辑按钮来编辑它,

有谁能告诉我如何使内联编辑一个特定列为false,但当您编辑特定行时,例如coln是可编辑的-

{name:'product_image',index:'ProductId',width:25,align:'right',edit: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");
        },
$(“#列表”).jqGrid({
url:'products.php?storeId=',
数据类型:“xml”,
mtype:'获取',
ColName:[“产品Id”、“产品说明”、“部门”、“类别”、“价格”、“销售价格”、“数量”、“扩展说明”、“Web项”、“图像”],
colModel:[
{名称:'ProductId',索引:'ProductId',宽度:20},
{名称:'product_name',索引:'product_name',宽度:50,可编辑:true,编辑类型:'text',搜索:true,样式:'text'},
{name:'DepartmentName',index:'DepartmentName',宽度:40,可排序:false,可编辑:true,edittype:'select'},
{name:'CategoryName',index:'CategoryName',宽度:40,可排序:false,可编辑:true,edittype:'select'},
{名称:'price',索引:'price',宽度:15,对齐:'right',可编辑:true,编辑类型:'text'},
{名称:'sale_price',索引:'sale_price',宽度:15,对齐:'right',可编辑:true,编辑类型:'text'},
{名称:'product_qty',索引:'product_qty',宽度:10,对齐:'right',可编辑:,编辑类型:'text',
{名称:'product_description',索引:'product_description',宽度:100,可排序:false,可编辑:true,编辑类型:'text'},
{name:'web_item',index:'web_item',width:15,sortable:false,edittype:true,edittype:'select',editoptions:{value:{1:'true',0:'false'}},
{名称:'product_image',索引:'ProductId',宽度:25,对齐:'right',编辑类型:'file',可编辑:false},
],
loadComplete:function(){
$(“#list”).setColProp('DepartmentName',{editoptions:{value:departments}});
$(“#list”).setColProp('CategoryName',{editoptions:{value:categories}});
},
寻呼机:“#寻呼机”,
rowNum:40,
行列表:[10,20,30,40,50,60,70,80,90100],
sortname:“产品ID”,
排序器:“desc”,
viewrecords:是的,
gridview:没错,
标题:"产品",,
自动宽度:正确,
高度:桌高,
是的,
loadtext:“正在加载产品…”,
cellurl:'edit_product.php?storeId=',
editurl:'edit_product.php?storeId=',
}).navGrid(“#寻呼机”,
{
戴尔:错,
加:,
编辑:对,
搜索:正确
},
{jqModal:true,closeAfterEdit:false,recreateForm:true,onInitializeForm:function(formid){
$(formid).attr('method','POST');
$(formid.attr('action','');
$(formid.attr('enctype','multipart/form data');
},
beforeShowForm:函数(形式){
$(“#产品#u图像”,表单).attr(“禁用”、“错误”);
},

谢谢

如果我了解您当前的问题,您可以从
beforeShowForm
回调中的编辑表单在
$(“#产品_图像”)
字段上设置
只读属性。有关相应的代码示例,请参阅或

已更新:从您发布的代码中可以看到您使用了单元格编辑(
cellEdit:true
)。不支持与jqGrid的其他编辑模式(或)一起使用

可能是意外使用了
cellEdit:true
?在这种情况下,您应该删除该选项来解决问题

如果确实需要使用单元格编辑,则可以将“不可编辑单元格”类添加到“产品图像”列中。可以在中使用
类:“不可编辑单元格”
,也可以根据需要动态创建(请参见中)。该类仅由单元格编辑使用,将被表单编辑忽略

如果您确实需要同时使用单元格编辑和表单编辑,则必须在开始表单编辑之前调用
restoreCell
saveCell
(请参阅)(例如中)。您可以将方法的所有参数保存在上次调用的回调中


代码的最后一句话:我觉得很奇怪,你对两列使用
索引:'ProductId'
ProductId
product\u image
。可能是键入错误吗?

我的问题是另一种情况,我希望普通网格列为b只读,然后编辑面板我可以编辑它@罗伊斯坦德利:我不明白你的意思,“普通网格列”未处于编辑模式。因此,您没有可以设置为只读的字段。如果您实现了一些特殊场景,如自定义格式化程序或类似的内容,则需要对其进行描述。如果您希望同时使用编辑模式:内联编辑和表单编辑,则应准确描述激活编辑的方式。目前,jqGrid提供了y方式和实现可能很大程度上取决于选择的方式。当网格加载时,我可以将列产品图像设置为只读。这就是我需要实现的,用户可以读取数据,但不能编辑。当用户选择一行数据并单击“编辑”时此按钮加载编辑对话框,我希望产品图像在此对话框中可编辑,而不是在其他地方。@RoryStandley:加载网格后,网格的所有列只包含文本(如果您不使用一些特殊的格式化程序,如
格式化程序:“复选框”,格式化选项:{disabled:false}
)所以所有列都是只读的。所以我真的不明白你在做什么。如果你用创建jqGrid的JavaScript代码附加你的问题可能会更好。我已经添加了我正在使用的代码。也许我没有为你正确解释它!