Как показать поля только для чтения в форме редактирования в jqgrid или другим способом показать весь текст из колонки только для чтения - PullRequest
6 голосов
/ 14 августа 2011

jqGrid colModel содержит многострочный столбец только для чтения, определенный с использованием приведенных ниже свойств.Длина строки содержимого превышает ширину столбца, текст слишком длинный, поэтому tooltio не отображает весь контент.Невозможно просмотреть весь контент.

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

Как разрешить пользователю просматривать содержимое всего столбца?

colModel: [{
"name":"LoggedLongText",
"editable":false,"width":539,
"classes":"jqgrid-readonlycolumn","fixed":true,
"hidden":false,"searchoptions":{"sopt":["cn","eq","ne","lt","le","gt","ge","bw","ew","nc"]}}
}]

Ответы [ 3 ]

31 голосов
/ 14 августа 2011

Это настройка

editable: true, editoptions: { readonly: "readonly" }

наверное что тебе нужно?

ОБНОВЛЕНО: Бесплатно jqGrid поддерживает больше значений для свойства editable, начиная с версии 4.8. В вики-статье описано, что editable может быть функцией, и она поддерживает дополнительно три строковых значения в случае использования редактирования формы: "hidden", "disabled" и "readonly".

3 голосов
/ 19 октября 2011

Чтобы показать поля только для чтения, вы можете попробовать использовать "disabled:disabled" внутри editoptions.

Еще один вариант - использовать пользовательский тип элемента, который возвращает диапазон, как показано ниже:

colModel: [ 
      ... 
      {name:'price', ..., editable:true, edittype:'custom', editoptions:{custom_element: myelem, custom_value:myvalue} },
      ...
   ]
..
function myelem (value, options) {
  var el = document.createElement("span");
  $(el).val(value);    // be sure to escape special characters as necessary.
  return el;
}

function myvalue(elem, operation, value) {
// just reutrun null or empty string.
return "";
}

Я предпочитаю это использовать "readonly:readonly", потому что опция readonly переноситэлемент управления вводом вокруг значения ячейки, элемент управления вводом все еще получает фокус, который, я думаю, вводит пользователя в заблуждение.Использование "disabled:disabled" удерживает входной элемент от лучшего приема, что немного лучше с точки зрения удобства использования.

Использование диапазона намного лучше.Интересно, что jqGrid отправляет на сервер даже « неудачные » элементы управления формы.

Надеюсь, это поможет.- JQR

1 голос
/ 14 ноября 2012

Чтобы отобразить поля только для чтения в EditForm, вы должны попробовать использовать свойство {readonly: true} внутри editoptions для столбца jqGrid, и оно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...