2010-11-30 13 views
3

私はメイングリッドでインライン編集を行う方法を知っていますが、サブグリッドに対してインライン編集を行う方法はありますか?ここで JqGridサブグリッドでインライン編集を行う方法は?

は、私のJSファイルです:

$(function(){ 
    var lastsel; 
$("#list").jqGrid({ 
url:'example.php', 
postData:{q:1}, 
datatype: 'json', 
mtype: 'GET', 
colNames:['Anchor','Description','Email','Url','In Today','Out Today','In Total','Out Total','Credits','Ratio','Status'], 
colModel :[ 
    {name : 'anchor' , index : 'anchor', width : 55, 'editable':true, 'editoptions':{'size':30}}, 
    {'name' : 'description' , 'index' : 'description', 'width' : 55, 'editable':true, 'edittype':'textarea', 'editoptions':{'rows':'3','cols':'30'}}, 
    {'name' : 'email' , 'index' : 'email', 'width' : 55, 'editable':true, 'editoptions':{'size':30}}, 
    {'name' : 'url' , 'index' : 'url', 'width' : 55, 'editable':true, 'editoptions':{'size':30}}, 
    {'name' : 'in_today' , 'index' : 'in_today', 'width' : 55, 'align' : 'right'}, 
    {'name' : 'out_today' , 'index' : 'out_today', 'width' : 55, 'align' : 'right'}, 
    {'name' : 'in_total' , 'index' : 'in_total', 'width' : 55, 'align' : 'right'}, 
    {'name' : 'out_total' , 'index' : 'out_total', 'width' : 55, 'align' : 'right'}, 
    {'name' : 'credits' , 'index' : 'credits', 'width' : 55, 'align' : 'right', 'editable':true, 'editoptions':{'size':30}}, 
    {'name' : 'ratio' , 'index' : 'ratio', 'width' : 55, 'align' : 'right', 'editable':true, 'editoptions':{'size':30}}, 
    {'name' : 'status' , 'index' : 'status', 'width' : 55,'align' : 'center', 'editable':true, 'edittype':'checkbox', 'editoptions':{'value':"On:Off"}} 
], 
pager: '#pager', 
rowNum:10, 
rowList:[10,20,30], 
sortname: 'anchor', 
sortorder: 'desc', 
viewrecords: true, 
caption: 'My first grid', 
subGrid: true, 
subGridUrl: 'example.php?q=2', 
subGridModel: [{ name : ['Game','URL'],width : [200,300] }], 
onSelectRow: function(id){ 
    if(id && id!=lastsel){ 
     jQuery('#list').jqGrid('restoreRow',lastsel); 
     jQuery('#list').jqGrid('editRow',id, true, '', '', '', {'q':3,'oper':'trades-edit'}); 
     lastsel=id; 
    } 
}, 
editurl: "example.php" 

}); 
}); 

答えて

1

ここjqgridのウィキに説明するようあなたはグリッドグリッドオプションとしてサブグリッドを使用することができます。私は上でこれを使用しました

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid_as_grid

現在のプロジェクトとそれはうまく動作します。利点は、サブグリッドが単なるグリッドであるため、グリッドフィーチャーを使用できることです。したがって、subGridスタイルのオプションは必要ありません。代わりに、あなたは次のようなものを持っています:

subGrid: true, 
    subGridRowExpanded: function(subgrid_id, row_id) { 
    // we pass two parameters 
    // subgrid_id is a id of the div tag created within a table 
    // the row_id is the id of the row 
    // If we want to pass additional parameters to the url we can use 
    // the method getRowData(row_id) - which returns associative array in type name-value 
    // here we can easy construct the following 
     var subgrid_table_id; 
     subgrid_table_id = subgrid_id+"_t"; 
     jQuery("#"+subgrid_table_id).jqGrid({ 
      url:"subgrid.php?q=2&id="+row_id, 
      datatype: "json", 
      colNames: ['Game','Url'], 
      colModel: [ 
      {name:"game",index:"num",width:80,key:true}, 
      {name:"url",index:"item",width:130}, 
      ], 
      height: 100%, 
      rowNum:20, 
      sortname: 'num', 
      sortorder: "asc" 
     }); 
    } 
    }); 
+0

この回答は不完全です。 'subgrid_table_id = subgrid_id +" _ t ";' 'subgrid_table_id = ''の後に' 'jQuery("# "+ subgrid_id).html("

" – SebiF

1

エドギブスは上記の通りです。実際、グリッドをサブグリッドとして作成すると、通常のグリッド上のすべてのオプションにアクセスできます。これらの2つのオプションがサブグリッドで定義されていることが重要です。これらのオプションを省略しても、インライン編集はできません。

subGridRowExpanded: function(subgrid_id, row_id) { 
     ... 
     cellEdit: true, 
     cellsubmit: 'clientarray' 
     ... 
     .. 
    }); 
関連する問題