zoukankan      html  css  js  c++  java
  • 转:Ext GridPanel根据条件显示复选框

    Ext GridPanel实现复选框选择框:

    var selectModel = new Ext.grid.CheckboxSelectionModel({
         singleSelect : false
    });

    但是这样每一行都会有复选框,如果需求为:某行数据的某个列满足什么条件我才有复选框选项就不太好实现了,

    这样就需要重写Ext.grid.CheckboxSelectionModel的渲染,行点击涵数来实现.

    1 var selectModel = new Ext.grid.CheckboxSelectionModel({
     2       singleSelect : false,
     3       renderer : function(v, p, record){
     4           if (record.data['结果状态'] == '0'){
     5                return '';
     6           }
     7           return '<div class="x-grid3-row-checker">&#160;</div>';
     8       },
     9       onHdMouseDown : function(e, t) {
    10           if (t.className == 'x-grid3-hd-checker') {
    11                e.stopEvent();
    12                var hd = Ext.fly(t.parentNode);
    13                var isChecked = hd.hasClass('x-grid3-hd-checker-on');
    14                if (isChecked){
    15                   hd.removeClass('x-grid3-hd-checker-on');
    16                   this.clearSelections();
    17               }else {
    18                   hd.addClass('x-grid3-hd-checker-on');
    19                   if (this.locked){
    20                       return;
    21                   }
    22                   this.selections.clear();
    23                   for (var i = 0, len = this.grid.store.getCount(); i < len; i++ ){
    24                       if (this.grid.store.getAt(i).data["结果状态"] != '0'){
    25                            this.selectRow(i, true);
    26                       }
    27                  }
    28               }
    29          }
    30       },
    31       handleMouseDown : function(g, rowIndex, e){
    32             if (e.button !== 0 || this.isLocked()) {
    33                    return;
    34             }
    35             var view = this.grid.getView();
    36             if (e.shiftKey && !this.singleSelect && this.last != false ) {
    37                  var last = this.last;
    38                  this.selectRange(last, rowIndex, e.ctrlKey);
    39                  this.last = last;
    40                  view.focusRow(rowIndex);
    41             }else{
    42                  var isSelected = this.isSelected(rowIndex);
    43                  if (e.ctrlKey && isSelected) {
    44                       this.deselectRow(rowIndex);
    45                  }else if(!isSelected || this.getCount() > 1){
    46                       if(this.grid.store.getAt(rowIndex).data["结果状态"] != '0'){
    47                           this.selectRow(rowIndex, e.ctrlKey || e.shiftKey);
    48                       }
    49                       view.focusRow(rowIndex);
    50                  }
    51             }
    52       }
    53 });

    原文:

    http://fordream.iteye.com/blog/1179252
  • 相关阅读:
    转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案
    Elementui 导航组件和Vuejs路由结合
    python 在线生成文字云
    TensorFlow创建简单的图片分类系统--机器学习
    kettle maven 配置
    Kettle api 二次开发之 日志的保存
    heatmap for arcgisjsapi
    Spring MVC 使用tomcat中配置的数据源
    点坐标旋转方法
    在servlet中使用Spring注入
  • 原文地址:https://www.cnblogs.com/glsqh/p/6185801.html
Copyright © 2011-2022 走看看