2015-02-24 65 views
1

我想在编辑时禁用少量列,但在通过navGrid添加进行添加时将启用这些列。 我使用下面的代码:动态禁用jqgrid列

colModel: [ 
     { name: 'Menu_Key_Nm', index: 'Menu_Key_Nm', align: 'left', width: 200, sortable: false, editable: true, editrules: { required: true } }, 
     { name: 'Menu_Display_Nm', index: 'Menu_Display_Nm', align: 'left', width: 200, sortable: false, editable: true, editrules: { required: true } }, 
     { name: 'Category', index: 'Category', align: 'left', width: 200, sortable: false, editable: true, editrules: { required: true }, edittype: 'select', editoptions: { dataUrl: '@Url.Action("GetCategoryList", "Admin")'} }, 
    ] 

在navGrid编辑选项我写了下面的代码:

//edit 
{ 
    beforeShowForm: function (form) { 
     $("#tr_Menu_Key_Nm").attr("disabled", "true"); 
     $('#tr_Category').attr("disabled", "true"); 
     } 
    url: '@Url.Action("Update")', 
    closeAfterEdit: true 
}, 
//Add option 
{ 
    beforeShowForm: function (form) { 
     $("#tr_Menu_Key_Nm").attr("disabled", "false"); 
     $('#tr_Category').attr("disabled", "false"); 
     } 
    } 

但我得到的上方,而编辑后添加禁用列。 任何帮助,非常感谢。提前致谢。所有的

while Adding through navGrid Add button

+0

@Oleg你可以检查它曾经? – Anand 2015-02-24 12:33:53

回答

1

首先,你应该修复代码并使用.prop("disabled", true).prop("disabled", false)代替.attr("disabled", "true").attr("disabled", "false")。如果你使用jQuery的非常老的版本,你可以使用attr,但是在这种情况下,值应该是.attr("disabled", "disabled").removeAttr("disabled")

顺便说一句,我现在开发的新版本free jqGrid,你已经可以下载和使用。我计划很快发布版本。该版本有许多新功能。 the wiki article中描述了一个功能。它允许你定义editable属性作为功能。在函数内部可以测试是否options.mode === "addForm"并且只在这个情况下返回true。在options.mode === "editForm"的情况下,您可以返回“已禁用”值,这与您在代码中执行的操作完全相同。

尝试the demo。它显示

enter image description here

enter image description here

一些列的editable财产被定义为editable: editableInAddForm,其中功能editableInAddForm看起来像下面

editableInAddForm = function (options) { 
    if (options.mode === "addForm") { 
     return true; 
    } 
    if (options.mode === "editForm") { 
     return "disabled"; 
    } 
    return false; // don't allows editing in other editing modes 
} 
+0

它的工作......非常感谢...... @ Oleg – Anand 2015-02-24 13:21:03

+0

@Anand:不客气! – Oleg 2015-02-24 13:26:11

+0

以上述相同方式查看选定行时是否可以禁用列? – Anand 2015-02-25 10:07:24