2014-02-05 22 views
0

我正在使用jqGrid並設置了一個操作處理程序,我希望用戶能夠刪除一行。在URL中指定的回調被調用,但我不知道如何將行ID傳遞給URL處理程序,所以我知道要刪除哪一行。如何在jqGrid中刪除行時傳遞ID?

任何人都有解決方案嗎?

<script> 
$(document).ready(function() { 
    $("#list2").jqGrid({ 
     url:'datahandler', 
     datatype: "json", 
     colNames:['Name','Description', 'Data (Abbreviated)', 'Actions'], 
     colModel:[ 
      {name:'name',index:'name', width:300, resizeable:true}, 
      {name:'description',index:'description', width:300, resizeable:true}, 
      {name:'data',index:'data', width:600, resizeable:true}, 
      {name : 'actions', sortable:false, index: 'actions', formatter:'actions', 
       formatoptions: { 
        keys: true, 
        editbutton: false, 
        delOptions: { url: 'deleterow' } 
           }} 
     ], 
     rowNum:10, 
     rowList:[10,20,30], 
     pager: '#pager2', 
     sortname: 'name', 
     viewrecords: true, 
     sortorder: "desc", 
     caption:"PVSyst Data", 
    }); 
    $("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false}); 
}); 
</script> 

回答

1

目前尚不清楚您使用哪種格式來填充網格和使用哪個rowid。如果填充的數據錯誤並且將使用值1,2,3而不是要在服務器端看到的rowid,則會出現典型錯誤。以任何方式,上述代碼將使用HTTP POST請求到delOptions中指定的URL "deleterow"。數據的格式爲delGridRow(參見here)。例如,如果刪除了行的id是"123"然後發佈到URL "deleterow"的數據將

oper=del&id=123 

你只需要實現在服務器端的id參數讀數。如果您想將參數名稱從id重命名爲myId之類的任何其他文本,則可以使用jqGrid optionprmNames: { id: "myId" }。之後,發佈的數據看起來像

oper=del&myId=123 
+0

嗨奧列格,感謝您的評論。我沒有在網址或流中的數據中看到此ID。在我的HTML中是否還有額外的東西需要發送ID? –

+0

@fredbasset:沒有額外的事情要做。順便說一句,我添加了您在網格中定義的「actions」列,我可以在[Fiddler](http://www.telerik.com/download/fiddler)中看到完成的HTTP POST請求以及請求包含'oper = del&id = 123'。我建議您使用Fiddler,IE開發工具,Chrome或任何其他工具來跟蹤HTTP流量。 – Oleg

+0

更新:我現在通過表單數據獲取操作符和標識。然而,id是錶行的數字索引,我真正想要的是行的第一列的名稱。任何想法如何讓網格發送給我? –