开发者博客: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 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法 ExtJS4学习笔记(一)---window的创建 ...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
在使用ExtJS4开发一个grid的时候,经常会遇到需要对grid的列进行动态的显示和隐藏操作,以适应不同的显示需求。ExtJS4中的gridpanel组件提供了一些内置的方法来控制列的可见性,但有时候需要一个更直观的方式来实现...
### ExtJS4自动生成Grid列显示/隐藏Checkbox的实现方法 #### 一、问题背景及需求分析 在ExtJS4的应用开发过程中,有时会遇到这样的需求:需要为GridPanel中的每一列提供一个Checkbox来控制其是否显示。尽管ExtJS4...
在ExtJS中,PropertyGrid是一种用于展示对象属性的控件,它可以方便地编辑和查看对象的各个属性。在PropertyGrid中遇到的一个常见问题是当使用Combobox(下拉列表框)作为编辑器时,用户选择的值(displayField)与...
在上述代码中,`renderer`函数会检查`record.data.XR0003`的值,如果该值为'0',则通过返回`'<div class="x-grid-row-checker"></div>'`使得复选框能够显示在该行;如果值不是'0',则返回空字符串,不显示复选框。 ...
EXTJS的`Ext.selection.CheckboxModel`(或简写为`checkboxSelection`)提供了复选框选择模型,用于表格(grid)和其他组件,使得用户可以通过复选框进行多项选择。全选功能通常通过添加一个特殊的复选框来实现,该...
在ExtJS中,`Ext.grid.Panel`是创建网格的主要组件。你可以通过`columns`配置定义列,每列由一个对象表示,包含`text`(列标题)、`dataIndex`(对应数据源的字段名)和`width`(宽度)等属性。`store`配置项用于...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里...
6. **JSONStore加载Web服务返回的JSON数据**:`Ext4 JSONStore加载webservice返回的json数据.docx`将讲述如何使用JSONStore来从服务器获取并显示数据。JSONStore是ExtJS用于处理JSON格式数据的存储类,它可以与Ajax...
本文将详细介绍 Extjs 中 Grid 组件的基本用法,包括如何创建 Grid、如何配置列模型 (Column Model)、如何处理不同格式的数据源以及如何在 Grid 中添加 CheckBox。 #### 二、Grid 组件基础 ##### 2.1 构建基本的 ...
4. **Ext.form.FormPanel** 和 表单控件: - FormPanel是用于创建表单的组件,可以设置`frame`(是否有边框)、`layout`(布局方式)、`defaults`(组件默认属性)等。例如,`layout:'column'`表示列布局,`...
- `Ext.form.CheckboxGroup` 和 `Ext.form.RadioGroup`:用于组合复选框和单选框。 - `Ext.form.field.Trigger`:触发字段,常用于下拉搜索框。 - `Ext.form.field.Spinner`:用于数字的微调。 - `Ext.form....
EXTJS组件通过xtype属性定义,这个属性值对应于组件的类型,使得开发者可以通过配置轻松创建和管理组件。EXTJS的组件化设计使得UI布局和功能模块化,便于维护和扩展。 总之,EXTJS以其强大的功能和良好的用户体验,...
再加上可编辑grid,添加新行,删除一或多行,提示多行数据,推拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,啊,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件...
ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。 功能丰富,无人能出其右 无论是界面之美,还是功能之强,ext的表格控件都高居榜首。 单选行,多选行,高亮显示选中的行,推拽...
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支持-注册用户...
第五讲.ExtJs最常用表单组件Number、CheckBox、Radio 第六讲.ExtJs最常用表单组件ComboBox、time、date 第七讲.ExtJS面板Panel 第八讲.EXtJS布局模式-Auto布局、Fit布局、Accordion布局 第九讲.ExtJS布局模式-...
### EXTJS:构建高效前端界面的强大工具 #### 引言 EXTJS,作为一个前沿的前端框架,被广泛应用于创建响应迅速、用户友好的界面。它不仅提供了丰富的组件库,还支持与后端技术的无缝集成,使开发者能够专注于前端...
12. **`propertygrid`** - `Ext.grid.PropertyGrid`,属性表格组件,用于展示对象的属性。 13. **`editor`** - `Ext.Editor`,编辑器组件,用于创建可编辑的字段或区域。 14. **`dataview`** - `Ext.DataView`,...