zoukankan      html  css  js  c++  java
  • Extjs4.2 GridPanel中显示单选按钮

    效果:如上图。

    代码:其中需要显示单选按钮的列

    {
                        dataIndex: 'FeeModel',
                        text: '收費模式',
                        flex: 1,
                        align: 'left',
                        radioValues: [{ "inputValue": "1", "boxLabel": "高級收費模式" }, { "inputValue": "2", "boxLabel": "简单收费模式" }, { "inputValue": "3", "boxLabel": "不收费模式" }],
                        renderer:function(value, metaData, record, rowIndex, colIndex, store, view) {  
                            var column = view.getGridColumns()[colIndex],  
                                html = '';  
                            Ext.each(column.radioValues, function(rec) {  
                                var inputValue = rec.inputValue;  
                                var boxLabel = rec.boxLabel;  
                                var checked = inputValue == value;  
                                var name =  view.id+"_Grdi_Column_Radio_"+record.data.Id+"_"+rowIndex;  
                                html += "<input name='" + name + "' type='radio' " + (checked ? "checked" : "") + "  colIndex='" + colIndex + "'  rowIndex='" + rowIndex + "' value='" + inputValue + "'/>" + boxLabel;
                            });  
                            return html;  
                        },
                        tdCls: 'tdValign'
    
                    }
    

      给表格加入事件

      me.on('afterrender', function (grid, eOpts) {
               
                this.el.on('click', function (event) {
                    var radio = event.getTarget('input[type="radio"]');
                    if (radio) {
                        var rowIndex = radio.getAttribute("rowIndex");
                        var colIndex = radio.getAttribute("colIndex");
                        this.getStore().getAt(rowIndex).set('FeeModel',radio.value);
                    }
                }, this);
            });
    

      表格全部代码:

    Ext.define('Yxd.view.FeeModelSet.ProjectGrid', {
        extend: 'Yxd.ux.BaseGridPanel',
        xtype: 'FeeModelSet_ProjectGrid',
        border: 0,
       initComponent: function () {
            var me = this;
            var store = Ext.create("Yxd.store.Project", {
                autoLoad: true
    
            });
         
            Ext.applyIf(me, {
                store: store,
                columns: [
                   {
                       flex: 1,
                       dataIndex: 'Id',
                       text: 'Id',
                       hidden: true,
    
                       align: 'center'
                   }, {
                       text: '序号',
                       xtype: 'rownumberer',
                        50,
                       tdCls: 'tdValign',
                       align: 'center'
                   },
                    {
                        dataIndex: 'Name',
                        text: '项目名称',
                        flex: 1,
                        align: 'left',
                        tdCls: 'tdValign'
    
                    }, {
                        dataIndex: 'FeeModel',
                        text: '收費模式',
                        flex: 1,
                        align: 'left',
                        radioValues: [{ "inputValue": "1", "boxLabel": "高級收費模式" }, { "inputValue": "2", "boxLabel": "简单收费模式" }, { "inputValue": "3", "boxLabel": "不收费模式" }],
                        renderer:function(value, metaData, record, rowIndex, colIndex, store, view) {  
                            var column = view.getGridColumns()[colIndex],  
                                html = '';  
                            Ext.each(column.radioValues, function(rec) {  
                                var inputValue = rec.inputValue;  
                                var boxLabel = rec.boxLabel;  
                                var checked = inputValue == value;  
                                var name =  view.id+"_Grdi_Column_Radio_"+record.data.Id+"_"+rowIndex;  
                                html += "<input name='" + name + "' type='radio' " + (checked ? "checked" : "") + "  colIndex='" + colIndex + "'  rowIndex='" + rowIndex + "' value='" + inputValue + "'/>" + boxLabel;
                            });  
                            return html;  
                        },
                        tdCls: 'tdValign'
    
                    }]
    
            });
    
            me.callParent(arguments);
            me.on('afterrender', function (grid, eOpts) {
               
                this.el.on('click', function (event) {
                    var radio = event.getTarget('input[type="radio"]');
                    if (radio) {
                        var rowIndex = radio.getAttribute("rowIndex");
                        var colIndex = radio.getAttribute("colIndex");
                        this.getStore().getAt(rowIndex).set('FeeModel',radio.value);
                    }
                }, this);
            });
         }
      
    });
  • 相关阅读:
    输入url后的加载过程~
    编写一个方法,求字符串长度~~~
    闭包 什么是闭包 为什么用闭包~~
    作用域链的理解~~
    谈谈javascript的基本规范~~~~
    html中datalist 是什么??????
    elementui中el-input联想搜索框
    js中数组对象去重的方法
    vue视频截图第一帧demo
    styled-components的基本使用
  • 原文地址:https://www.cnblogs.com/Y-X-DONG/p/6857775.html
Copyright © 2011-2022 走看看