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‘,
                   width: 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);
        });
     }

});
时间: 2024-10-12 07:49:53

Extjs4.2 GridPanel中显示单选按钮的相关文章

gridpanel中 getSelectionModel()

var model = grid.getSelectionModel(); model.selectAll();//选择所有行 model.selectFirstRow();//选择第一行 model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false model.selectNext();//选择下一行 model.selectPrevious();//选择上一行 model.selectRange(tartRow,ndR

GridPanel中getSelectionModel

GridPanel中getSelectionModel 更多 2014/5/1 来源:extjs学习浏览量:6783 学习标签: GridPanel extjs 本文导读:Ext.grid.GridPanel 继承自Panel,其xtype为grid,包括了排序.缓存.拖动.隐藏某一列.自动显示行号.列汇总.单元格编辑等实用功能. 当我们需要获取选择的数据时,就需要用到getSelectionModel方法.下面介绍GridPanel中getSelectionModel的操 作. 一.Ext.g

《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字

在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而使用一个新类Label取代.可想而知,Label实际上就是对之前3个类进行重新封装并统一渲染. 提示:实际上老版本的内容在3.x版本中依然是可以使用的. 下面是在Cocos2d-x中显示文字的一个例子,具体完整项目可在源文件本章目录下找到项目ChapterThree01查看. [范例3-1 在Coc

Mac 中显示资源库(Library)文件夹目录的几种方法

Mac 中显示资源库(Library)文件夹目录的几种方法 Mac中Library目录在10.6.7系统之后默认隐藏的,要想找到此文件夹有如下几种方法: 1. 用命令可以使其显示: 在终端中执行命令: chflags nohidden ~/Library 可显示资源库文件夹 如想隐藏,可以在终端中执行命令: chflags hidden ~/Library 隐藏 2. 在Finder菜单中的偏好设置中设置 在Finder菜单中的偏好设置中选择边栏,勾选上设备中的硬盘. 再打开Finder,Fin

Windows环境下Python v2.7.9,NotePad++编写程序中涉及中文,执行时CMD中显示乱码的解决办法

例如: 1.使用NotePad++,以默认的"以 UTF-8无 BOM 格式编码"编写: print "一加一等于二" 直接运行后CMD报错: 但是在IDLE中显示正常: 在文件第一行加入注释: # _*_coding:utf-8_*_ 运行后CMD显示乱码,IDLE依然正常: 在字符串前加u(Unicode编码): # _*_coding:utf-8_*_ print u"一加一等于二" 运行后正常,IDLE依然正常: 2. 使用NotePad

C#在listview控件中显示数据库数据

一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 设置一列的Text属性,这就是列名 添加三列 3.编辑items属性,添加一行数据 编辑Text属性,添加一行的第一个数据 编辑subitems属性,添加一行中的其他数据 添加两个数据 填写结果 二.在listview中显示数据库数据 //在listview中显示数据库数据 private voi

在InternetExplorer.Application中显示本地图片

忘记了,喜欢一个人的感觉 Demon's Blog  ?  程序设计  ?  在InternetExplorer.Application中显示本地图片 ? 对VBS效率的再思考--处理二进制数据 WordPress判断用户是否登录 ? 在InternetExplorer.Application中显示本地图片 标题: 在InternetExplorer.Application中显示本地图片作者: Demon链接: http://demon.tw/programming/internetexplor

097在进度条中显示进度百分比

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 #import "KMProgressViewWithLabel.h" 3 4 @interface ViewController : UIViewController 5 @property (strong, nonatomic) KMProgressViewWithLabel *progressViewCustom; 6 7 @end ViewController.m

double类型的数值在EditText中显示?

============问题描述============ double类型的数值在EditText中显示?et_count.setText(double型数值) 报错,请问应该怎么写? ============解决方案1============ 你要用String.valueof(double value) ============解决方案2============ et_count.setText(String.valueOf(double型数值)) ============解决方案3====