2013-02-26 346 views
0

我正在使用格式化程序'actions'的jqgrid,在每一行显示'编辑'按钮。它运行良好,但现在我想显示“更新”链接而不是显示默认编辑按钮。那可能吗?jqgrid formatter'actions' - 更改编辑按钮样式

我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 2013-02-26 12:33:39

+0

嗨奥列格,谢谢你的回复!我将澄清我的问题 - 我想摆脱这个按钮,并且只有文本,而不是'Update',带有链接样式(带下划线),就像一个简单的标签。我需要它来执行编辑该行的相同操作。只有取代按钮,我需要将其显示为链接...再次提前感谢!可人。 – user2111091 2013-02-26 12:41:12

+0

对不起凯仁,但你会得到哪些优势?该列的宽度将更宽。 jqGrid使用*标准* jQuery UI图标,这些图标与语言无关且直观易懂。动作格式化程序的[完整代码](https://github.com/tonytomov/jqGrid/blob/v4.4.4/js/jquery.fmatter.js#L396-L506)使用'div.ui-inline-编辑“等。所以你的需求的结果是你将不得不编写你自己的代码,你根本不能使用'formatter:'actions''。这是你想要的吗? – Oleg 2013-02-26 12:58:48

回答

0

一个人不容易用formatter: "action"代替<div>到一个链接(<a>)。我认为你必须使用自定义格式化程序来实现这些要求。我建议你看看the answer的演示。我认为你可以紧密地实施你的要求。

+0

谢谢Oleg的回应。我知道如何创建链接并在其下插入任何javascript函数。但我的问题是 - 是否有办法以某种方式调用打开“编辑”窗体的方法?我非常想使用jqgrid的内置'编辑'功能....我知道可以触发其他操作,例如: $(“#mylist”)。jqGrid('toggleSubGridRow ',rowId); 我可以做些类似于打开“编辑”对话框吗? 再次感谢。 – user2111091 2013-02-27 06:56:33

+0

@ user2111091:不客气!要开始表单编辑,您可以调用[editGridRow](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing#editgridrow)。小心:jqGrid不支持使用* local *数据进行表单编辑。我希望[这里]示例(http://stackoverflow.com/a/4983690/315935)可以帮助你。你不发布网格定义,所以我不明白你为什么需要调用'toggleSubGridRow'。 – Oleg 2013-02-27 07:32:30

+0

非常感谢你!这正是我错过的,对'editGridRow'的调用......现在一切正常。关于'toggleSubGridRow',这只是我在代码中其他位置创建的一些其他调用的示例。我试着为你投票,但我在这里是新来的,所以没有任何声望..也许下次。可人。 – user2111091 2013-02-27 08:19:27