2013-05-29 110 views
1

我已經使用默認的刪除按鈕進行自定義操作,在服務器端它在刪除之前複製行。我想知道如何創建第二個刪除按鈕,它將刪除操作發送到不同的網址,以便在數據庫的表上刪除。我不想更改我當前服務器端代碼上的任何內容,只是想爲此按鈕發送的刪除操作創建一個新代碼。我尋求看起來像這樣的解決方案(這是X刪除圖標):如何在導航欄jqgrid上添加第二個自定義刪除按鈕?

enter image description here

繼承人的代碼我迄今它沒有working.I也希望有一個自定義窗口,以確認DELET行動開始前。任何幫助表示讚賞:

script src="js/jquery-1.9.0.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script> 
<script type="text/javascript">  

$(function(){ 
    $("#list").jqGrid({ 
    url:'request.php', 
    editurl: "jqGridCrud.php", 
    datatype: 'xml', 
    mtype: 'GET', 
    height: 530, 
    width: 850, 
     scrollOffset:0, 



    colNames:['id','Project', 'Assigned To','Assign Date','Check Date','Due Date','Attached','',], 
    colModel :[ 

     {name:'id', index:'id', width:25}, 
     {name:'name', index:'name', width:250, align:'left',editable:true, editoptions:{ 
      size:60} }, 
     {name:'id_continent', index:'id_continent', width:55, align:'right',editable:true,edittype:'select', 
     editoptions:{value: "Henry:Henry; Ramon:Ramon; Paul:Paul" },mtype:'POST' }, 

     {name:'lastvisit', index:'lastvisit', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/dd/yy',editable:true, edittype: 'text',mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/dd/yy'});}}} , 


     {name:'cdate', index:'cdate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/dd/yy', edittype: 'text',editable:true ,mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/dd/yy'});}}} , 

     {name:'ddate', index:'ddate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/dd/yy',editable:true, edittype: 'text',editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/dd/yy'});}}} , 


     {name:'email', index:'email', width:40,align:'center',sortable:false,mtype:'POST', formatter:function(cellvalue, options, rowObject){ 
      return '<a href="' + cellvalue + '" target="_blank">FILES </a> ' 
     } }, 
     {name:'act',index:'act',width:20 ,align:'center', sortable:false,formatter: "actions", 
formatoptions: { 
    keys: true, 
    delbutton: true, 
    editbutton:false, 
    delOptions: { 
     url: 'jqGridCrud.php', 
     msg: "Remove Selected Project?", 
     bSubmit: "Remove", 
     bCancel: "Cancel" 
    } 
}}, 
    ], 
    pager: '#pager', 


    rowNum:20, 
    rowList:[20,40,80], 
    sortname: 'id', 
    sortorder: 'desc', 
    viewrecords: true, 
    gridview: true, 
    caption: 'Pending Assignments', 



    ondblClickRow: function(rowid) { 

    $(this).jqGrid('editGridRow', rowid, 
         {width:450,Height:400,recreateForm:true,closeAfterEdit:true, 
         closeOnEscape:true,reloadAfterSubmit:false, modal:true,mtype:'post'});} 


      }); 

$.extend($.jgrid.nav, {delicon: "ui-icon-circle-check"}); 

$("#list").jqGrid("navGrid", "#pager", { add: false, search: false, edit:false, refresh:false }) .navButtonAdd('#pager',{ 
    caption:"Delete", 
    buttonicon:"ui-icon-closethick", 
    url: 'jqGridCrud-og.php', 
    onclicksubmit:function() { 
    var $self = $(this), rowid; 

    // get id of selected row or array of ids of selected rows 
    if ($self.jqGrid("getGridParam", "multiselect")) { 
     rowid = $self.jqGrid("getGridParam", "selarrrow"); 
     if (rowid.length === 0) { 
      rowid = null; 
     } 
    } else { 
     rowid = $self.jqGrid("getGridParam", "selrow"); 
    } 

    if (rowid === null) { 
     // display error message because no row is selected 
     $.jgrid.viewModal("#" + 'alertmod_' + this.p.id, 
      {gbox: "#gbox_" + $.jgrid.jqID(this.p.id), jqm: true}); 
     $("#jqg_alrt").focus(); 
    } else { 
     $self.jqGrid("delGridRow", rowid); 
    } 
}, 
    position:"last"}) ; 






    // setup grid print capability. Add print button to navigation bar and bind to click. 
    setPrintGrid('list','pager','Print'); 
    }); 
</script> 






</head> 


<body> 

    <script src="js/jquery.printelement.js" type="text/javascript"></script> 
    <script src="js/printgrid.js" type="text/javascript"></script> 

回答

0

你需要指定需求爲delGridRow方法的第一個參數被刪除的行的ROWID。所以onclickSubmit的代碼應該是關於以下

onclickSubmit: function() { 
    var $self = $(this), rowid; 

    // get id of selected row or array of ids of selected rows 
    if ($self.jqGrid("getGridParam", "multiselect")) { 
     rowid = $self.jqGrid("getGridParam", "selarrrow"); 
     if (rowid.length === 0) { 
      rowid = null; 
     } 
    } else { 
     rowid = $self.jqGrid("getGridParam", "selrow"); 
    } 

    if (rowid === null) { 
     // display error message because no row is selected 
     $.jgrid.viewModal("#" + 'alertmod_' + this.p.id, 
      {gbox: "#gbox_" + $.jgrid.jqID(this.p.id), jqm: true}); 
     $("#jqg_alrt").focus(); 
    } else { 
     $self.jqGrid("delGridRow", rowid); 
    } 
} 
+0

我試過了沒有得到任何迴應。沒有發生。 – NewHistoricForm

+0

@ Oleg我發佈我的代碼,因爲我目前擁有它。可以有一個行動格式化列影響它? – NewHistoricForm

+0

@NewHistoricForm:我輸入錯誤。應該使用'onclickSubmit'而不是'onclicksubmit'。另一個問題:'navButtonAdd'沒有'url'參數。你可以使用'delGridRow'的'url'選項:'$ self.jqGrid(「delGridRow」,rowid,{url:'jqGridCrud-og.php'});' – Oleg