2014-11-21 81 views
0

我jqGrid的腳本:的jqGrid刪除行與ID通過

<script type="text/javascript"> 

var delete_task_url = "/controller/deleteRecordAction"; 
var gr = jQuery("#grid").jqGrid('getGridParam','selrow'); 
jQuery("#grid").jqGrid({ 
    url:call_url, 
     datatype: "json", 
    height: 'auto', 
    rowNum: 20, 
    rowList: [20,30], 
    colNames:['Task#','Project ID','Task Name', 'Start Date', 'End Date', 'Created By', 'Created Date', 'Status', 'Action'], 
    colModel:[ 
     {name:'USER_ID',index:'TASK_ID', align:'center',search:false }, 
     {name:'USER_NAME',index:'TASK_NAME', search:false}, 
     {name:'ACTION',index:'link', search:false,align:'center',sortable:false, formatter: 'actions', 
     formatoptions: { 
      keys: true, 
      editformbutton: true, 
      delOptions: { url: delete_task_url} 
     }}, 
    ], 
    pager: "#page", 
    shrinkToFit :true, 
    autowidth: true, 
    viewrecords: true, 
    sortname: 'TASK_ID', 
    caption: "Task List", 
    gridComplete: function() { 
        var recs = $("#grid").getGridParam("records"); 
        $(".mycontent").remove(); 
        if (recs == 0 || recs == null) { 
         $('#grid').after("<div class='mycontent' style='color:red;text-align:center'>No Record Found</div>"); 

        } 

       } 
}).navGrid('#page',{ edit:false,add:false,del:true,search:false,cloneToTop:true,refresh:false}, 
      { 

      },{ 
      //add options 


      },{ 

         //msg: "do you really want delete this keyword? This delete affect on Eqms filter" 

       }); 
       jQuery("#grid").jqGrid('filterToolbar', { autosearch: true }); 
      var topPagerDiv = $('#grid_toppager')[0]; 
      jQuery("#grid_toppager_center", topPagerDiv).remove(); 

</script> 

演示如下:

Working Example

我沒有任何複選框,在那裏我可以通過UserId和基於該選擇刪除該記錄。如何通過UserId點擊trash圖標並刪除記錄?

謝謝。

回答

1

如果USER_ID列包含唯一的id數據,那麼您可以將key: true屬性添加到colModel的列USER_ID的定義中。結果,jqGrid會將數據以oper=del&id=48803的形式發佈到服務器。如果您想要oper=del&id=48803,您可以另外使用prmNames: { id: "USER_ID" }option。因此,在編輯/刪除數據期間將要發佈到服務器的參數名稱將更改爲oper=del&USER_ID=48803

通過在你的代碼的開頭行var gr = jQuery("#grid").jqGrid('getGridParam','selrow');應除去,因爲一個試圖讓selrow參數之前將要創建的網格的價值的方式。我建議您將gridview: true選件另外添加到電網。

+0

@Slimshadddyyy:我在[option](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)這個詞上加了鏈接。 'prmNames:{id:「USER_ID」}'是jqGrid的相同選項,比如'url','datatype','height','rowNum'和其他你使用的。 'formatter:'actions''在內部使用[delGridRow](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing#delgridrow)刪除該行。默認選項'reloadAfterSubmit'爲true。因此,在刪除該行後,網格將自動重新加載。你可以使用'delOptions'來指定'delGridRow'的選項。 – Oleg 2014-11-21 09:19:24

+0

感謝您的回答。但是我被困在用戶點擊編輯圖標時如何重定向。 'editformbutton'設置爲true,所以它顯示一個彈出窗口而不是重定向到另一個頁面。雖然刪除它完美的作品。 – Slimshadddyyy 2014-11-21 09:22:52

+0

@Slimshadddyyy:不客氣! 「編輯」圖標的重定向給我另一個問題。爲了幫助其他用戶找到答案,應該提出一個新問題。你應該準確描述你想要的。 'editformbutton'與Delete按鈕沒有任何關係。如果使用'editformbutton:true',則表單編輯將用於編輯操作。默認值是'editformbutton:false',這意味着內聯編輯。 – Oleg 2014-11-21 09:33:11