7 ответов:
Я просто хочу расширить на queen3предложение, применяя следующее делает трюк:
editoptions: { dataInit: function(element) { $(element).attr("readonly", "readonly"); } }Сценарий № 1:
- поле должно быть видно в сетке
- поле должно быть видно в виде
- поле должно быть только для чтения
решение:
colModel:[ { name:'providerUserId', index:'providerUserId', width:100,editable:true, editrules:{required:true}, editoptions:{ dataInit: function(element) { jq(element).attr("readonly", "readonly"); } } }, ],providerUserId отображается в сетке и виден при редактировании формы. Но вы не можете отредактируйте содержимое.
Сценарий № 2:
- поле не должно быть видно в сетке
- поле должно быть видно в виде
- поле должно быть только для чтения
решение:
colModel:[ {name:'providerUserId', index:'providerUserId', width:100,editable:true, editrules:{ required:true, edithidden:true }, hidden:true, editoptions:{ dataInit: function(element) { jq(element).attr("readonly", "readonly"); } } }, ]обратите внимание, что в обоих случаях я использую jq для ссылки на jquery вместо обычного $. В моем HTML у меня есть следующий скрипт для изменения переменной, используемой jQuery:
<script type="text/javascript"> var jq = jQuery.noConflict(); </script>
эта функция встроена в 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} } ], ... };есть другие editrules, которые могут быть применены, но эта базовая настройка будет скрывать зарплату менеджера в виде сетки, но позволит редактировать при отображении формы редактирования.
Вы можете использовать следующий код, чтобы скрыть столбец таблицы..
JQuery("tableName").hideCol("colName");и вы можете использовать следующий код, чтобы показать это снова.
JQuery("tableName").showCol("colName");для вашего вопроса Вы можете вызвать код hideCol() в документе.ready (), и вы можете привязать код showCol () к событию редактирования/щелчка диалогового окна.
эта тема довольно старая, я полагаю, но в случае, если кто-то еще наткнется на этот вопрос... Мне нужно было захватить значение из выбранной строки таблицы, но я не хотел показывать столбец, из которого эта строка была. Я использовал hideCol, но имел ту же проблему, что и Энди, где он выглядел грязным. Чтобы исправить это (назовите это взломом), я просто повторно установил ширину сетки.
jQuery(document).ready(function() { jQuery("#ItemGrid").jqGrid({ ..., width: 700, ... }).hideCol('StoreId').setGridWidth(700)поскольку мои ширины строк являются автоматическими, когда я сбрасываю ширину таблицы, он сбрасывает ширину столбцов, но исключает скрытый, поэтому они заполнили пробел.
попробуйте использовать edithidden: true, а также сделать
editoptions: { dataInit: function(element) { $(element).attr("readonly", "readonly"); } }или см. jqGrid wiki для пользовательского редактирования, вы можете настроить любой тип ввода, даже метку, я думаю.
Это немного старый, этот пост. Но это мой код, чтобы показать/скрыть столбцы. Я использую встроенную функцию для отображения столбцов и просто отмечаю их.
функция, которая отображает столбцы отображать/скрывать столбцы. #JqGrid-это имя моей сетки, а columnChooser-это выбор столбца jqGrid.
function showHideColumns() { $('#jqGrid').jqGrid('columnChooser', { width: 250, dialog_opts: { modal: true, minWidth: 250, height: 300, show: 'blind', hide: 'explode', dividerLocation: 0.5 } });
Comments