2012-02-19 83 views
0

我面臨jqGrid的問題。我在jqGrid中有一個文檔列表。第一列DocID,第二列是DocName,現在我需要兩個帶有複選框的列,以便用戶可以訂閱這些文檔。因此,我需要第3列和第4列的複選框,以便用戶可以選中任意數量的複選框,然後每次點擊需要使用文檔ID進行AJAX調用的複選框,以便我可以保存用戶訂閱的該用戶的選項那個具體的文件。帶有複選框的jqGrid列

我可以使兩列與複選框,我使用啓用他們與格式化,但現在我不能走得更遠,我需要獲取rowid點擊複選框和行的文檔ID在哪裏複選框被點擊。

這是我的網格代碼。

jQuery("#doc").jqGrid({ 
    url: urlDoc + docID, 
    datatype: 'json', 
    mtype: 'GET', 
    colNames:[<?php echo (buildCSV(array(_(''), _('Document ID'), _('Document Name'), _('Subscribe'), _('Copy Locally')))); ?>], 
    colModel:[ 
      {name:'fld_doc2comp_status',index:'fld_doc2comp_status', width:1, editable: false, align:"left", hidden:true}, 
      {name:'fld_comp_documentid',index:'fld_comp_documentid', width:70, editable: true, align:"left", sortable:false, 
       editrules:{required:true}, formoptions:{label:'<?php echo (_('Document ID') . ' *');?>'} }, 
      {name:'fld_documentname',index:'fld_documentname', editable: true, align:"left", sortable:false, 
      editrules:{required:true}, formoptions:{label:'<?php echo (_('Document Name') . ' *');?>'} }, 
      {name:'fld_subscribe',index:'fld_subscribe', editable: true, formatter:'checkbox', edittype:"checkbox", formatoptions:{disabled:false}, sortable:false, width:60, align:"center"}, 
      {name:'fld_local',index:'fld_local', editable: true, formatter:'checkbox', edittype:"checkbox", formatoptions:{disabled:false}, sortable:false, width:60, align:"center"} 
    ], 
    loadComplete: function() { 
     jQuery('#doc').setSelection(jQuery('#doc').getDataIDs()[0],true); 
     $('.ui-jqgrid-titlebar-close').remove(); 
    }, 
    onSelectRow: function(id){ 
     docID=id; 
    }, 
    width:650, 
    height:430, 
    rowNum:100, 
    viewrecords: true, 
    sortable: true, 
    sortname: 'fld_comp_documentid', 
    sortorder: 'asc', 
    pager:"#docpgr", 
    pgbuttons:true, 
    pginput:true, 
    editurl: urlDoc + docID, 
    caption: '<?php echo _('Document');?>' 
}); 

我要救通過編輯記錄畫面fld_subscribe並在主屏幕上的數據庫fld_local領域,而不是。我需要用戶能夠通過簡單地點擊複選框來更改任何文檔的fld_local和fld_subscribe。

期待您的快速回復傢伙。

回答

1

我建議您查看the answer,其中顯示瞭如何將複選框上的點擊綁定到您的事件處理程序。演示程序使用Tree Grid,但代碼與任何jqGrid完全相同。

順便說一下,loadComplete裏面的this<table>的DOM。它有rows財產。 jqGrid的第一行是隱藏的空行。所以第一個可見行的id將是this.rows[1].id。您可以驗證該this.rows.length > 1,然後使用this.rows[1].id而不是 jQuery('#doc').getDataIDs()[0]