Скрытые столбцы в jqGrid



есть ли способ скрыть столбец в таблице jqGrid, но показать его только для чтения, когда строка редактируется в модальном диалоговом окне редактора форм?

618   7  

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 для пользовательского редактирования, вы можете настроить любой тип ввода, даже метку, я думаю.

чтобы скрыть столбец сетки

jQuery("#validGrid").jqGrid('hideCol',str);

Это немного старый, этот пост. Но это мой код, чтобы показать/скрыть столбцы. Я использую встроенную функцию для отображения столбцов и просто отмечаю их.

функция, которая отображает столбцы отображать/скрывать столбцы. #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

    Ничего не найдено.