`
keepwork
  • 浏览: 330667 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EXT--ExtJs4_grid获取checkbox的值

    博客分类:
  • EXT
ext 
阅读更多

开发者博客www.developsearch.com

 

 

grid每列前面加checkbox: (我用的而是第一种,后台一个string数组接受就可以了)
一般的grid使用一个Ext.grid.ColumnModel就可以了,要加入一个多选的列,一种方法是加入一个多选列模板Ext.grid.CheckboxSelectionModel: 

var sm = new Ext.grid.CheckboxSelectionModel(); 
var cm = new Ext.grid.ColumnModel( 
    [ 
        sm, 
        {id:'company',header: "Company", width: 60, sortable: true, dataIndex: 'company'}, 
    ] 
);

 

 

另外,实例化EditorGridPanel时还必须指定这个sm为selModel. 
如果不指定EditorGridPanel的selModel,将无法勾选checkbox。 

 

 

 

grid = new Ext.grid.rGridPanel( 
    { 
        id:'editGridTestAjax', 
        width:700, 
        height:500, 
        el:'topic-grid', 
        store:ds, 
        cm:cm, 
        clickToEdit:2,//双击后进入编辑状态 
        selModel:sm  //这个 selModel 可简写为sm 
    } 
); 

 

 

获取checkbox的值

 function modfiy(){
  if (grid.getSelectionModel().hasSelection()){
   var records=grid.getSelectionModel().getSelections();
   var mycars=new Array();
  for(var i=0;i<records.length;i++){
  mycars[i]=records[i].data.xwbh;
  }
      alert(mycars.length);
      return mycars
 }else{
 alert('请选中要操作的记录!');
 }
 };
   function deleteall(){
   var values=modfiy();
   Ext.MessageBox.confirm( "请确认", "是否要删除选中信息", function(button,text){   
                 if(button=='yes'){
               Ext.Ajax.request({
url:'news_query.do',
 method:'post',
 params:{values:values'},
 success:function(req){
 var responseObj = Ext.util.JSON.decode(req.responseText);
 if(responseObj.success == 'true'){
 Ext.Msg.alert("成功提示", responseObj.infor);
 }else{
  Ext.Msg.alert("错误提示", responseObj.infor);
   return;
  }
 }
 });
                 }else{
                  return;
                 }    
             });
   }
   //处理checkbox的勾选事件 
    grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r){ 
alert('勾选了checkbox后,获得选中行的name:'+grid.store.getAt(rowIdx).get('name')); 
}); 
    //处理checkbox的取消勾选事件 
    grid.getSelectionModel().on('rowdeselect', function(sm, rowIdx, r){ 
alert('取消勾选checkbox后,获得的record 中的name:'+grid.store.getAt(rowIdx).get('name')); 
});

 

 

另一种方法是在ColumnModel中自己写一个checkbox列 

 

 

 

 

function changeCheck(value,cellmeta,record,rowIndex,columnIndex,store){ 
    return "<input type='checkbox' name='adds_checkbox' onclick=oneclick(this) id='adds_checkbox_'"+value+"></input>"; 
} 
//上面的oneclick方法定义在Ext.onReady()外面 
var cm = new Ext.grid.ColumnModel(  
    [    
        
        {//自定义的多选列 
            header:"<input id='allcheckbox' type='checkbox' onclick=checkall(this)></input>", 
            dataIndex:'addsid', 
            renderer:changeCheck, 
            width:20, 
            sortable:false 
        }, 
                ... 
             ] 
            );

 

 

grid每列前面加checkbox: (我用的而是第一种,后台一个string数组接受就可以了)
一般的grid使用一个Ext.grid.ColumnModel就可以了,要加入一个多选的列,一种方法是加入一个多选列模板Ext.grid.CheckboxSelectionModel: 

var sm = new Ext.grid.CheckboxSelectionModel(); 
var cm = new Ext.grid.ColumnModel( 
    [ 
        sm, 
        {id:'company',header: "Company", width: 60, sortable: true, dataIndex: 'company'}, 
    ] 
); 

 

 

另外,实例化EditorGridPanel时还必须指定这个sm为selModel. 
如果不指定EditorGridPanel的selModel,将无法勾选checkbox。 

 

 

 

grid = new Ext.grid.rGridPanel( 
    { 
        id:'editGridTestAjax', 
        width:700, 
        height:500, 
        el:'topic-grid', 
        store:ds, 
        cm:cm, 
        clickToEdit:2,//双击后进入编辑状态 
        selModel:sm  //这个 selModel 可简写为sm 
    } 
); 

 

 

获取checkbox的值

 function modfiy(){
  if (grid.getSelectionModel().hasSelection()){
   var records=grid.getSelectionModel().getSelections();
   var mycars=new Array();
  for(var i=0;i<records.length;i++){
  mycars[i]=records[i].data.xwbh;
  }
      alert(mycars.length);
      return mycars
 }else{
 alert('请选中要操作的记录!');
 }
 };
   function deleteall(){
   var values=modfiy();
   Ext.MessageBox.confirm( "请确认", "是否要删除选中信息", function(button,text){   
                 if(button=='yes'){
               Ext.Ajax.request({
url:'news_query.do',
 method:'post',
 params:{values:values'},
 success:function(req){
 var responseObj = Ext.util.JSON.decode(req.responseText);
 if(responseObj.success == 'true'){
 Ext.Msg.alert("成功提示", responseObj.infor);
 }else{
  Ext.Msg.alert("错误提示", responseObj.infor);
   return;
  }
 }
 });
                 }else{
                  return;
                 }    
             });
   }
   //处理checkbox的勾选事件 
    grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r){ 
alert('勾选了checkbox后,获得选中行的name:'+grid.store.getAt(rowIdx).get('name')); 
}); 
    //处理checkbox的取消勾选事件 
    grid.getSelectionModel().on('rowdeselect', function(sm, rowIdx, r){ 
alert('取消勾选checkbox后,获得的record 中的name:'+grid.store.getAt(rowIdx).get('name')); 
}); 

 

 

另一种方法是在ColumnModel中自己写一个checkbox列 

 

 

 

function changeCheck(value,cellmeta,record,rowIndex,columnIndex,store){ 
    return "<input type='checkbox' name='adds_checkbox' onclick=oneclick(this) id='adds_checkbox_'"+value+"></input>"; 
} 
//上面的oneclick方法定义在Ext.onReady()外面 
var cm = new Ext.grid.ColumnModel(  
    [    
        
        {//自定义的多选列 
            header:"<input id='allcheckbox' type='checkbox' onclick=checkall(this)></input>", 
            dataIndex:'addsid', 
            renderer:changeCheck, 
            width:20, 
            sortable:false 
        }, 
                ... 
             ] 
            );

 

开发者博客www.developsearch.com

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ExtJS4中文教程2 开发笔记 chm

    Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法 ExtJS4学习笔记(一)---window的创建 ...

    ext.net-extjs

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox

    在使用ExtJS4开发一个grid的时候,经常会遇到需要对grid的列进行动态的显示和隐藏操作,以适应不同的显示需求。ExtJS4中的gridpanel组件提供了一些内置的方法来控制列的可见性,但有时候需要一个更直观的方式来实现...

    extjs4如何自动生成掌握grid的列显示、隐蔽的checkbox_.docx

    ### ExtJS4自动生成Grid列显示/隐藏Checkbox的实现方法 #### 一、问题背景及需求分析 在ExtJS4的应用开发过程中,有时会遇到这样的需求:需要为GridPanel中的每一列提供一个Checkbox来控制其是否显示。尽管ExtJS4...

    ExtJS PropertyGrid中使用Combobox选择值问题

    在ExtJS中,PropertyGrid是一种用于展示对象属性的控件,它可以方便地编辑和查看对象的各个属性。在PropertyGrid中遇到的一个常见问题是当使用Combobox(下拉列表框)作为编辑器时,用户选择的值(displayField)与...

    Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法

    在上述代码中,`renderer`函数会检查`record.data.XR0003`的值,如果该值为'0',则通过返回`'&lt;div class="x-grid-row-checker"&gt;&lt;/div&gt;'`使得复选框能够显示在该行;如果值不是'0',则返回空字符串,不显示复选框。 ...

    extjs4 入门基础,form、grid、tree

    在ExtJS中,`Ext.grid.Panel`是创建网格的主要组件。你可以通过`columns`配置定义列,每列由一个对象表示,包含`text`(列标题)、`dataIndex`(对应数据源的字段名)和`width`(宽度)等属性。`store`配置项用于...

    ExtJS 4.2.0

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...

    Extjs4使用要点个人整理

    6. **JSONStore加载Web服务返回的JSON数据**:`Ext4 JSONStore加载webservice返回的json数据.docx`将讲述如何使用JSONStore来从服务器获取并显示数据。JSONStore是ExtJS用于处理JSON格式数据的存储类,它可以与Ajax...

    Extjs Grid 用法 pdf版

    本文将详细介绍 Extjs 中 Grid 组件的基本用法,包括如何创建 Grid、如何配置列模型 (Column Model)、如何处理不同格式的数据源以及如何在 Grid 中添加 CheckBox。 #### 二、Grid 组件基础 ##### 2.1 构建基本的 ...

    ExtJs使用过程中积攒的一些东西

    4. **Ext.form.FormPanel** 和 表单控件: - FormPanel是用于创建表单的组件,可以设置`frame`(是否有边框)、`layout`(布局方式)、`defaults`(组件默认属性)等。例如,`layout:'column'`表示列布局,`...

    ExtJS-3.4.0系列目录

    - `Ext.form.CheckboxGroup` 和 `Ext.form.RadioGroup`:用于组合复选框和单选框。 - `Ext.form.field.Trigger`:触发字段,常用于下拉搜索框。 - `Ext.form.field.Spinner`:用于数字的微调。 - `Ext.form....

    很不错的ExtJs PPT

    EXTJS组件通过xtype属性定义,这个属性值对应于组件的类型,使得开发者可以通过配置轻松创建和管理组件。EXTJS的组件化设计使得UI布局和功能模块化,便于维护和扩展。 总之,EXTJS以其强大的功能和良好的用户体验,...

    解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

    EXTJS的`Ext.selection.CheckboxModel`(或简写为`checkboxSelection`)提供了复选框选择模型,用于表格(grid)和其他组件,使得用户可以通过复选框进行多项选择。全选功能通常通过添加一个特殊的复选框来实现,该...

    extjs2.2.1

    再加上可编辑grid,添加新行,删除一或多行,提示多行数据,推拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...

    Ext js-2.0 带API

    ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。  功能丰富,无人能出其右  无论是界面之美,还是功能之强,ext的表格控件都高居榜首。  单选行,多选行,高亮显示选中的行,推拽...

    深入浅出Extjs4.1.1

    12、ExtJS之Ext常用函数4 {, o8 W1 s! I6 ^3 k 13、ExtJS之Ext常用函数(二)' o, e2 G$ D7 @" ?- [! E 14、初识Ajax& i O, A2 I, c6 G: c- Q) K% I 15、ExtJS对Ajax支持-注册用户实例 16、ExtJS对Ajax支持-注册用户...

    Extjs4.1.1

    第五讲.ExtJs最常用表单组件Number、CheckBox、Radio 第六讲.ExtJs最常用表单组件ComboBox、time、date 第七讲.ExtJS面板Panel 第八讲.EXtJS布局模式-Auto布局、Fit布局、Accordion布局 第九讲.ExtJS布局模式-...

    EXTJS.docx

    ### EXTJS:构建高效前端界面的强大工具 #### 引言 EXTJS,作为一个前沿的前端框架,被广泛应用于创建响应迅速、用户友好的界面。它不仅提供了丰富的组件库,还支持与后端技术的无缝集成,使开发者能够专注于前端...

    ExtJs组件类的对应表

    12. **`propertygrid`** - `Ext.grid.PropertyGrid`,属性表格组件,用于展示对象的属性。 13. **`editor`** - `Ext.Editor`,编辑器组件,用于创建可编辑的字段或区域。 14. **`dataview`** - `Ext.DataView`,...

Global site tag (gtag.js) - Google Analytics