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

jQuery("#CustomerDetailsGrid").jqGrid({
    //ignore other properties
    colModel: [
    { name: 'AccountNumber', index: 'AccountNumber', hidden: true, viewable: true }
],
    viewrecords: true        
});

ужно скрыть столбец «Номер счета» в виде сетки, но показать его в виде формы. (Не редактировать форму)

 J _31 янв. 2011 г., 22:54
В StackOverflow указан другой способ:Вот

Ответы на вопрос(4)

Следить заJ_Предложение, применяя следующее делает свое дело:

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>
Решение Вопроса

он будет заполнен информацией о каждом столбце, размещенном в строках. Идентификатор строки (идентификатор<tr> element) будет построен из префикса "trv_" и имени соответствующего столбца. Важно понимать, что в форме будет заполнена информация овсе столбцывключительно скрытые колонны, но<tr> элементы для скрытых столбцов будут скрыты (has style = "display: none;"). Итак, чтобы сделать информацию видимой, достаточно позвонитьjQuery.show() функция для соответствующего<tr> элемент.

Я готовнебольшое демо которые демонстрируют это. В демоid столбцы скрыты, но я делаю информацию видимой внутриbeforeShowForm а такжеafterclickPgButtons Обработчик событий параметров просмотра:

$("#list").jqGrid('navGrid','#pager',
                  {add:false,edit:false,del:false,view:true,search:false},
                  {}, // edit options
                  {}, // add options
                  {}, // del options
                  {}, // search options
                  {   // vew options
                      beforeShowForm: function(form) {
                          $("tr#trv_id",form[0]).show();
                      },
                      afterclickPgButtons: function(whichbutton, form, rowid) {
                          $("tr#trv_id",form[0]).show();
                      }
                  });
 Jess Stone03 февр. 2014 г., 14:38
Уважаемый @Oleg, я узнал, что мне просто нужно использовать «editable» => false, поскольку моя цель - показать столбец в таблице и скрыть его в форме редактирования. в любом случае, спасибо, вы JQGrid GURU, я голосую за все ваши ответы! ! :)
 Jess Stone03 февр. 2014 г., 13:26
так как вопросу 2 года, мне было интересно: есть ли современные решения для этого? NB: JqSuite для PHP -
 Oleg03 февр. 2014 г., 13:56
@JessStone: я сам не пользуюсь jqSuite, но, полагаю, все так же, как в jqGrid. На можно использоватьeditrules: {edithidden: true}, но это не чистый вариант для просмотра. Он также будет использоваться для редактирования. Если вы не используете редактирование и просто хотите отобразить некоторые скрытые столбцы, вы можете использоватьeditrules: {edithidden: true}.
 Oleg03 февр. 2014 г., 15:20
@JessStone: Добро пожаловать! Я рад, что смог вам помочь.
 Rabih Kodeih12 янв. 2017 г., 20:57
Для неизвестных скрытых столбцов можно использовать: $ ('tr [id ^ = "trv_"]', form [0]). Show ();

{edithidden: true}.

colModel: [{ name: 'AccountNumber', index: 'AccountNumber', hidden: true, viewable: true,editrules:{edithidden:true} }]
 DeveloperX13 июл. 2014 г., 13:45
Спасибо ! ты сэкономил мое время

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

jQuery("#GridId").jqGrid('hideCol','colName');

Ваш ответ на вопрос