2013-02-26 2 views
0

Я использую jqgrid с форматированием «действия», чтобы отображать кнопку «редактировать» в каждой строке. Он работает хорошо, но теперь я хотел бы отобразить ссылку «Обновить» вместо отображения кнопки редактирования по умолчанию. Это возможно?jqgrid formatter «действия» - изменить стиль кнопки редактирования

Мои colModel выглядит так:

 colModel: [ 
      { name: 'Listname', formatter: displayListName, width: 270, sortable: false }, 
      { name: 'OrigListname', hidden: true, editable: true, editrules: {edithidden:true} }, 
      { name: 'NumOfContacts', hidden: true }, 
      { name: 'IsPrivate', hidden: true, editable: true, editrules: { edithidden: true }, edittype: 'checkbox' }, 
      { name: 'CanUpdate', hidden: true }, 
      { name: 'Recipients', formatter: displayRecipients, width: 100, sortable: false }, 
      { name: 'Update', formatter: 'actions', width: 100, sortable: false, 
       formatoptions:{ 
        keys: true, 
        editbutton: true, 
        editformbutton: true, 
        delbutton: false, 
        editOptions: { 
         closeOnEscape: true, 
         closeAfterAdd: true, 
         viewPagerButtons: false, 
         closeAfterEdit: true, 
         afterSubmit: function (response, postdata) { 
          var r = $.parseJSON(response.responseText); 
          return [r.success, r.Description, null]; 
         } 
        }; 
       } 
      },     
      { name: 'Import', formatter: displayImport, width: 100, sortable: false }, 
      { name: 'Export', formatter: displayExport, width: 100, sortable: false } 
     ] 

Спасибо заранее, Керен.

+0

Вы написали, что хотите «отобразить ссылку« Обновить ». Кроме того, вы писали о «изменении стиля кнопки редактирования» в заголовке вопроса. Не могли бы вы более подробно описать, что хотите? Как должен выглядеть измененный стиль? Как вы определяете ссылку «Обновить»? Вы хотите просто иметь другой текст всплывающей подсказки кнопки редактирования или вам нужны другие модификации? – Oleg

+0

Привет, Олег, благодарю вас за ответ! Я уточню свой вопрос: я хотел бы избавиться от кнопки и вместо этого использовать только текст, который говорит «Обновить», с стилем ссылки (подчеркнутым), как простой тег . И мне нужно, чтобы он выполнял одно и то же действие по редактированию строки. Только вместо кнопки мне нужно отобразить ее как ссылку ... спасибо заблаговременно! Керен. – user2111091

+0

Извините Керен, но какие преимущества вы получите? Ширина столбца будет шире. jqGrid использует * стандартные * иконки jQuery UI, которые не зависят от языка и понятны. [Полный код] (https://github.com/tonytomov/jqGrid/blob/v4.4.4/js/jquery.fmatter.js#L396-L506) использования форматирования действия постоянно конструирует, как 'div.ui-inline- редактировать' и т. д. Поэтому следствие ваших требований состоит в том, что вам придется писать свой собственный код, и вы не можете использовать 'formatter:« действия »вообще. Это то, что вы хотите? – Oleg

ответ

0

Нельзя так легко заменить <div>, используемый в formatter: "action" по ссылке (<a>). Я думаю, вы должны использовать пользовательский форматтер для реализации требований. Рекомендую посмотреть демо от the answer. Я думаю, что вы можете точно реализовать свои требования.

+0

Спасибо, Олег за ваш ответ. Я знаю, как создать ссылку и вставить в нее любую функцию javascript. Но мой вопрос - есть ли способ каким-то образом вызвать метод, который открывает форму «изменить»? Я бы очень хотел использовать встроенные функции редактирования jqgrid .... Я знаю, что можно запускать другие действия, например: $ ("# mylist"). JqGrid ('toggleSubGridRow ', rowId); Могу ли я сделать что-то подобное, открыв диалог «edit» ...? Еще раз спасибо. – user2111091

+0

@ user2111091: Добро пожаловать! Чтобы начать редактирование формы, вы можете вызвать [editGridRow] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing#editgridrow). Будьте осторожны: jqGrid не поддерживает редактирование формы с * локальными * данными. Я надеюсь, что пример [здесь] (http://stackoverflow.com/a/4983690/315935) может вам помочь. Вы не публикуете определение сетки, поэтому я не понимаю, зачем вам нужно «toggleSubGridRow». – Oleg

+0

Большое вам спасибо! это именно то, чего мне не хватало, призыв к «editGridRow» ...... теперь все работает хорошо. Что касается «toggleSubGridRow», это был всего лишь пример какого-то другого вызова, который я сделал где-то еще в моем коде. Я пробовал голосовать за вас, но я здесь новый, поэтому у меня нет никакой репутации. Может быть, в следующий раз. Керен. – user2111091

Смежные вопросы