jqgrid treegird的实践

jqGrid  4.5.4 - jQuery Grid


1.项目目录如下




2.页面如下


<1>本身打算实现如图所示功能

 $(function(){
      
      $.fn.fmatter.checkTextFormat = function(cellvalue, opts, rowObject){
       
        var op = $.extend({},opts.checkbox), ds;
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
op = $.extend({},op,opts.colModel.formatoptions);
}
if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";}
if($.fmatter.isEmpty(cellvalue) || cellvalue === undefined ) {cellvalue = $.fn.fmatter.defaultFormat(cellvalue,op);}
cellvalue=String(cellvalue);
cellvalue=(cellvalue+"").toLowerCase();
var bchk = (rowObject.isChecked == "1" ? " checked='checked' " : "");
return "<input type=\"checkbox\" " + bchk  + " value=\""+ cellvalue+"\" offval=\"no\" "+ds+ "/>" + cellvalue;
      }
   
       $.unformat.checkTextFormat = function (cellvalue, options, cell){
      var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
  var ret = $('input',cellvalue).is(":checked") ? cbv[0] : cbv[1];
  return ret;
       } 
   
   });
   

首先自定义formatter,但是当通过getRowData获取数据的时候,是获取的原始页面元素,查看源码发现如下:


if($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {
res[nm] = $.jgrid.htmlDecode($("span:first",this).html());     //注意此处
} else {
try {
res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
} catch (e){
res[nm] = $.jgrid.htmlDecode($(this).html());
}
}


如果是树节点,则不调用格式化,所以会是原始页面。因为源码过大,如果修改可能导致其他问题,所以没有修改,而是在扩展列前放置一个checkbox列,如果达不到要求会考虑修改源码。



页面其余源码

 function deleteTreeNode(){
  jQuery("#treegrid").delTreeNode(2);
   }
   
   function setTreeNode(){
       jQuery("#treegrid").setTreeRow("1",{"id":1,"username":"two222"});
   }
   
   
   function getSelected(){
     
   
      var rows= jQuery("#treegrid").jqGrid('getRowData');
      console.log(rows);
      
      var paras=new Array();
      for(var i=0;i<rows.length;i++){
         var row=rows[i];
         
         
         alert($.param(row));
         paras.push($.param(row));
     }
   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值