2011-06-26 127 views
1

我有一個自定義按鈕爲我的jqgrid按下時帶我到另一個視圖。 但由於某些原因,當我在標籤之間導航時,每次重新訪問該標籤時都會有一個額外的自定義按鈕。有沒有辦法只說一次添加此按鈕?jqgrid在jquery ui標籤

這是標記:

$('#tabs').tabs({ 
    show: function (event, ui) { 
     if(ui.index == 0) { 
      Show some content on this tab.. Not important. 
     } 

     if(ui.index == 1) { 
      $("#functionslist").jqGrid({ 
       datatype: 'json', 
       url: '/Admin/GetFunctionsList', 
       colNames: ['Namn'], 
       colModel: [ 
          { index: 'FunctionName', 
          name: 'FunctionName', 
          width: 100, 
          sortable: false 
          } 
          ], 
       rowNum: 20, 
       prmNames: { sort: 'SortColumn', order: 'SortOrder', page: 'Page', rows: 'Rows', search: null, nd: null }, 
       hidegrid: false, 
       pager: '#functionspager', 
       autowidth: true, 
       shrinkToFit: true, 
       height: '100%', 
       caption: 'Functions', 
       viewrecords: true, 
       onSelectRow: function (id) { 
         window.location.href = '/Function/Edit/' + id; 
       } 
      }).jqGrid('navGrid', '#functionspager', { edit: false, add: false, del: false, search: false, refresh: false }) 
      .navButtonAdd('#functionspager', { 
       caption: '', 
       title: 'Create new function', 
       buttonicon: 'ui-icon-plus', 
       onClickButton: function() { 
        window.location = '/Function/Add/'; 
       } 
      }); .... and so forth.... 

一切都正常運行,我有我想要的行爲,但由於某種原因,當我的兩個標籤越來越多的自定義按鈕添加之間進行導航。任何想法,爲什麼,試圖解決這個問題,但沒有運氣。

/丹尼爾

回答

0

爲什麼不檢查,看看是否按鈕添加它之前已經存在?

if ($('#functionspager :has(".ui-icon-plus")').length == 0) { 
    $("#functionslist").jqGrid('navGrid', '#functionspager', { edit: false, add: false, del: false, search: false, refresh: false }) 
     .navButtonAdd('#functionspager', { 
      ... 
      }); 
} 
0

呼叫$("#functionslist").jqGrid({/*parameters*/);轉換空<table>具有列,捕獲,尋呼機等的網格。您應該撥打電話一次,而不是在每個標籤頁激活時重複。

完全一樣的方法navGridnavButtonAdd應該被稱爲只有一次

所以你應該決定如果用戶選擇具有jqGrid的選項卡應該做什麼。例如,您可以撥打

$("#functionslist").trigger('reloadGrid', [{current:true}]); 

(見here瞭解詳細信息)