2013-02-26 348 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