jqGrid:使主键列可编辑而添加新记录,而不是更新
问题描述:
在jqGrid for update/edit工作,我必须使主键列可编辑。jqGrid:使主键列可编辑而添加新记录,而不是更新
但是,它们只能在添加新记录时才可编辑,而不能在更新旧记录时编辑。
有没有办法解决这个问题?我想这一定是非常普遍的问题,但我没有找到任何解决方法。
在此先感谢您的帮助。
答
如果您遵循Inline editing的原则,则可以在方法onCellSelect
或onSelectRow
上输入时指示要编辑的列。
要做到这一点,你只需要在属性更改编辑为所需的值:
$(this).getColProp('ColumnName').editable = false || true;
因此多数民众赞成一种解决方法不是实际的解决问题的。就像在db中有自动生成的ID列一样。但要求我必须除了主键列,我想禁用其他列也基于业务请求进行编辑。我们可以说人们应对变化,但他的出生日期不会。所以一旦进入系统我想确保出生日期被禁用编辑。 (只是一个例子) – harish 2011-03-22 05:32:33
@harish:如果你使用表单编辑,你可以在'beforeShowForm'内的编辑对话框中隐藏'id'和'birthdate'列(就像[here](http://stackoverflow.com/questions)/3405029/jqgrid-disable-form-fields-when-editing/3405961#3405961)将被禁用列'Name')。在这种方式下,您可以禁用编辑的列。在'beforeShowForm'中,您可以检查当前选定行并根据“业务请求”的更复杂标准禁用它。如果你使用内联编辑,你可以在调用editRow之前设置'$(“#list”).jqGrid('getColProp','id')。disable = false',然后改回它。 – Oleg 2011-03-22 07:25:59