`
xingyx
  • 浏览: 60949 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论
  • 52p9_xu: 感谢分享,本人最近闲来无事也想搭建一个 全注解的SSH框架。不 ...
    SSH注解框架

EXTJS Grid 之ActionColumn

阅读更多

EXTJS Grid 之ActionColumn

  分类: EXTJS4

在EXTJS的各个版本中,grid应该是我们最常用的组件之一,EXTJS的grid为我们提供了很强大的功能,相信,做过extjs的人都已经了解了该组件的强大之处。比如说:排序、过滤、编辑、等等。这节呢,咱们主要是对grid中的ActionColumn做一个说明。以便在大家用到的时候。便于查阅和参考。

 

EXTJS的Grid为我们提供了好多的列类型。比如说(ActionColumn、BooleanColumn、NumberColumn、DateColumn),在使用时,他们都大同小异。分别应用到不同的场景当中。

 

ActionColumn我们可以称呼他为动作列,顾名思义,也就是说,当我们该列需要出发一个动作时,我们就用到ActioColumn,比如说:我们需要点击某一列,连接到该记录的详细页面。当然,如果你用列的renderer函数也是可以实现的,但是。在扩展性和交互上就不太方便了。所以,我建议。如果,我们有类似的需求。我们还是用ActionColumn。

众所周知,在使用EXTJS的Grid时,必须必备的就是ColumnModel和Store、当然在EXTJS4中就是Model和Store、所以第一步我们首先要创建这两个对象,本文我们用EXTJS3.x来说明使用ActionColumn。着重演示一下ColumnModel的代码示例:

//创建列模型

var cm=new Ext.grid.ColumnModel([
  
   new Ext.grid.RowNumberer({
   
    renderer:function(value,metadata,record,rowIndex){
    
     return curth.startnum + 1 + rowIndex;
      }
   
   }),
  
   {header:"ID",dataIndex:"ID",hidden:true},
   
   {header:"文件名",dataIndex:"FileName"},
   
   {header:"运行时间",dataIndex:"RunTime"},
   
   {header:"运行状态",dataIndex:"RunState"},

   {xtype:"actioncolumn",header:"下载",items:[
   
    {icon:'Image/download.png',tooltip:"下载",handler:function(grid,rindex,cindex){
    
     var record=grid.getStore().getAt(rindex);
     
     var id=record.get("ID");
     
     download(id);
     
    }}
   
   ]}
  
  ]);

 

如上代码,我们创建了一个列模型对象。其中红色字体部分就是我们所说的ActionColumn。首先。创建一个ActionColumn对象,然后为其添加了一个元素。(我们可以把这个元素理解成为带有背景图片的按钮)。元素中icon指定了图片的路径,tooltip指定的工具提示信息,handler为元素的点击事件。事件可以传递三个参数,grid为grid本身对象,rindex为当前航索引,cindex为当前列索引。这样,我们在运行时。就会出现如上图中的效果了。

 

另外,我们可能还会根据某一列的值,来动态修改我们的图标。比如说:我们根据销售额,大于3000的我们用对号表示,小于的用错号表示。这个需求,ActionColumn也是能做到的。我们把上边的代码稍作改动,就可以实现

 

//创建列模型

var cm=new Ext.grid.ColumnModel([
  
   new Ext.grid.RowNumberer({
   
    renderer:function(value,metadata,record,rowIndex){
    
     return curth.startnum + 1 + rowIndex;
      }
   
   }),
  
   {header:"ID",dataIndex:"ID",hidden:true},
   
   {header:"文件名",dataIndex:"FileName"},
   
   {header:"运行时间",dataIndex:"RunTime"},
   
   {header:"运行状态",dataIndex:"RunState"},

   {xtype:"actioncolumn",header:"下载",items:[
      {

          getClass: function(v, meta, record) {  

              if (record.get('sellcount') < 3000) {
                  
this.items[0].tooltip = 'Do not buy!';
                  
return 'yes';
              
} else {
                 
this.items[0].tooltip = 'Buy stock';
                 
return 'no';
              
}
           
},
           handler
: function(grid, rowIndex, colIndex) {
                

           }
      
}

   ]}
  
  ]);


与第一段代码不同的是,这次我们使用了getClass这个函数,这个函数,可以根据我们的逻辑返回相应的css名称。这样,我们就可以完成我们的需求了。

分享到:
评论

相关推荐

    EXTJS4 Actioncolumn不能使用文字的部分解决办法

    就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。

    ExtJS文字按钮列

    2. **自定义扩展**:如果需要更多的定制,可以扩展`Ext.grid.ActionColumn`,并添加自己的方法和属性,例如: ```javascript Ext.extend(MyTextActionColumn, Ext.grid.ActionColumn, { text: '操作', getText: ...

    Extjs+Gride使用方法

    ExtJS 是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序,而Grid是ExtJS中的一个核心组件,用于展示数据表格。在本篇文章中,我们将深入探讨如何使用ExtJS与Gride进行交互,创建功能丰富的数据网格。...

    Extjs grid添加一个图片状态或者按钮的方法

    ExtJS提供的 `'actioncolumn'` 组件非常适合用来在Grid中添加按钮或图片按钮。以下是如何使用 `'actioncolumn'` 添加一个显示图片的列的示例: ```javascript { xtype: 'actioncolumn', header: '合格证', ...

    ExtJSgrid组件,分页展示全功能

    关于“更删改查”功能,Grid组件可以结合ActionColumn或者工具栏提供编辑、删除、保存等操作。例如,`DeletExt.java`可能包含了删除操作的实现,可能通过Ajax请求将用户选择的数据ID发送到服务器,然后由Struts2的...

    ExtJs的resultGrids中动态添加按钮

    在ExtJS中,我们可以利用`grid`的`column`配置和`actionColumn`来实现这一功能。 首先,我们需要定义一个`Ext.grid.Panel`,这是ExtJS中的表格组件。在创建这个组件时,我们需要指定列模型(`columns`),其中可以...

    extjs gridpanel例子和简单应用

    xtype: 'actioncolumn', width: 50, header: '操作', items: [ { icon: 'a.jpg', tooltip: '操作', handler: function (a, b, c, d) { var st = _store.getAt(b); alert(st.get('sex')); } } ] }, {...

    EXT学习小例子

    EXTJS可以通过ActionColumn或自定义的控制器实现权限判断,限制用户的操作。 这个“EXT学习小例子”项目为初学者提供了一个实践EXTJS基本功能的平台。通过研究和运行这个项目,学习者可以了解EXTJS的数据管理、UI...

    jQuery与ExtJS之选择实例分析

    相比之下,ExtJS是一个更全面的框架,提供了丰富的组件和数据绑定功能。在ExtJS中,实现类似的功能需要创建数据存储、定义网格组件,以及加载和渲染数据。以下是一个简单的ExtJS表格示例: ```javascript Ext....

    Extjs4 GridPanel 的几种样式使用介绍

    在本文中,我们将深入探讨ExtJS 4中的GridPanel组件,以及如何利用它来实现不同的样式和功能。GridPanel是ExtJS中用于展示表格数据的关键组件,它支持丰富的交互性和定制化。 首先,我们看到一个简单的GridPanel...

    网狗盘复制粘贴

    在EXTJS中,我们可以利用Grid组件来展示文件列表,使用ActionColumn来添加复制和粘贴的按钮,通过监听用户操作并触发相应的处理函数来实现这些功能。例如,当用户点击复制按钮时,我们可以获取选中的文件信息,并将...

    ext 4.0 学习笔记.doc

    **columns**:定义Grid的列,每个列都有自己的属性,如`text`(列标题)、`sortable`(是否可排序)、`renderer`(值渲染函数)、`dataIndex`(对应ArrayStore中字段的名字)、`type`(如特殊列类型`actioncolumn`)...

Global site tag (gtag.js) - Google Analytics