Вы можете использовать следующий код, чтобы скрыть столбец таблицы ..
JQuery("tableName").hideCol("colName");
И вы можете использовать следующий код, чтобы показать его снова.
JQuery("tableName").showCol("colName");
Для ответа на свой вопрос вы можете вызвать hideCol () в document.ready (), и вы можете привязать код showCol () к событию редактирования / щелчка диалогового окна.
Эта функция встроена в jqGrid.
настройте функцию сетки следующим образом.
$('#myGrid').jqGrid({
...
colNames: ['Manager', 'Name', 'HiddenSalary'],
colModel: [
{ name: 'Manager', editable: true },
{ name: 'Price', editable: true },
{ name: 'HiddenSalary', hidden: true , editable: true,
editrules: {edithidden:true}
}
],
...
};
Существуют и другие правила редактирования, которые можно применить, но эта базовая настройка скроет зарплату менеджера в представлении сетки, но позволит редактировать при отображении формы редактирования.
Попробуйте использовать edithidden: true, а также сделать
editoptions: { dataInit: function(element) { $(element).attr("readonly", "readonly"); } }
Или посмотрите jqGrid wiki для пользовательского редактирования, вы можете настроить любой тип ввода, даже ярлык, я думаю.
Полагаю, эта ветка довольно старая, но на случай, если кто-то еще наткнется на этот вопрос ... Мне нужно было получить значение из выбранной строки таблицы, но я не хотел показывать столбец, из которого была эта строка. Я использовал hideCol, но у меня была та же проблема, что и у Энди, когда это выглядело неаккуратно. Чтобы исправить это (назовем это хаком), я просто повторно установил ширину сетки.
jQuery(document).ready(function() {
jQuery("#ItemGrid").jqGrid({
...,
width: 700,
...
}).hideCol('StoreId').setGridWidth(700)
Так как ширина моей строки автоматическая, когда я сбрасываю ширину таблицы, она сбрасывает ширину столбца, но исключает скрытый, поэтому они заполняют пробел.