2015-02-24 115 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