//创建recode结构
var recode =Ext.data.Record.create([
{name:"productProjectId",mapping:0},
{name:"productName",mapping:1},
{name:"searchBtn",mapping:2},
{name:"productNum",mapping:3},
{name:"accountMoney",mapping:4},
{name:"costMoney",mapping:5}
]);
//创建data
var data =[];
//创建reader
var reader =new Ext.data.ArrayReader({},recode);
//创建一个store返回规范的recode对象
var store =new Ext.data.Store(
{
proxy:new Ext.data.MemoryProxy(data),
reader:reader,
pruneModifiedRecords :true
});
//加载数据
store.load();
//定义表格编号
var rowNumber = new Ext.grid.RowNumberer({
sortable: true
})
//创建列
var cm = new Ext.grid.ColumnModel([
//rowNumber,
{
header: 'productProjectId',
dataIndex: 'productProjectId',
hidden: true,
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))
},
{
header:"商品/项目",
dataIndex:"productName",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true,readOnly:true}))
},
{
header:"操作",
dataIndex: 'searchBtn',
align: 'center',
renderer:function(){
return '<img src=\"'+ ctxPath +'/resource/image/systemIcon/47.png\" style=\"cursor:pointer;\" onclick=\"javascript:settleBtnExp();\" />';
}
},
{
header:"数量",
dataIndex:"productNum",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({
allowBlank:true,
maxLength:3
}))
},
{
header:"应收金额",
dataIndex:"accountMoney",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true,readOnly:true}))
},
{
header:"实收金额",
dataIndex:"costMoney",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true}))
}
]);
var tbar = new Ext.Toolbar({
items:[{
text: "添加一行",
iconCls:"blist",
handler:function(){
//定义一个recode对象
var initValue={productProjectId:"",productName:"",searchBtn:"",productNum:"",accountMoney:"",costMoney:""};
var p =new recode(initValue); //根据上面创建的recode 创建一个默认值
grid.stopEditing();
store.insert(0,p);//在第一个位置插入
grid.startEditing(0,1);//指定的行/列,进行单元格内容的编辑
p.dirty=true;
p.modified=initValue;
if(store.modified.indexOf(p)==-1){
store.modified.push(p);
}
}
},"-",{
text:"删除",
iconCls:"delCls",
handler:function(){
var sm = grid.getSelectionModel();
var cell = sm.getSelectedCell();
if (Ext.isEmpty(cell)) {
Ext.Msg.alert('提示', '你没有选中行');
return ;
}
var record = store.getAt(cell[0]);
Ext.MessageBox.confirm('确认', '你确认要删除'+record.get('productName')+'这行吗?', function(btn){
if(btn=='yes'){
store.remove(record);
}
});
/* 此种方法用于带单选按钮的gridCheckboxSelectionModel
var ds = grid.getStore();
var selectedRow = grid.getSelectionModel().getSelected();
if(selectedRow){
Ext.MessageBox.confirm('确认', '你确认要删除这行吗?', function(btn){
if(btn=='yes'){
ds.remove(selectedRow);
}
});
}else{
Ext.Msg.alert("提示", "请选择一条需要删除的记录!");
}*/
}
}]
});
// 定义分页条
var bbar = getBarPaging(store, 'dtlBbarExt', false, function (){
//var keyId = Ext.getCmp("settleId").getValue();
store.reload({
params : {
start : 0,
limit : bbar.pageSize
//'memberSettleAccount.settleId': keyId
}
});
});
var grid = new Ext.grid.EditorGridPanel({
columnWidth : 1,
height: 200,
store: store,
cm: cm,
id: 'listGridDtlExp',
clicksToEdit : 1, // 单击、双击进入编辑状态
autoScroll : true,
stripeRows: true, // 斑马线
loadMask: true,
loadMask: {
msg:'正在加载数据.....'
},
tbar: tbar,
//bbar: bbar,
frame: true
})
// 检查新增行的可编辑单元格数据合法性
var m = gridstore.modified.slice(0);
for (var i = 0; i < m.length; i++) {
var record = m[i];
var rowIndex = store.indexOfId(record.id);
var value = record.get(colName);
if (Ext.isEmpty(value)) {
// Ext.Msg.alert('提示', '数据校验不合法');
return false;
}
var colIndex = cm.findColumnIndex(colName);
var editor = cm.getCellEditor(colIndex).field;
if (!editor.validateValue(value)) {
// Ext.Msg.alert('提示', '数据校验不合法');
return false;
}
}
分享到:
相关推荐
在EXT JS框架中,"ext 读取xml 可编辑grid"是一个常见的需求,涉及到的主要知识点包括EXT的数据对象、EditorGridPanel的使用以及EXT对XML数据格式的支持。下面将详细阐述这些内容。 EXT JS是一个强大的JavaScript库...
综上所述,EXT JS的可编辑grid功能结合CellEditing插件,提供了一种直观且高效的用户交互方式,使得用户可以直接在grid中修改数据。通过理解并实践上述步骤,开发者可以创建出功能完备、用户体验良好的数据编辑界面...
Grid提供了一种高效、可定制的表格视图,允许用户进行数据浏览、排序、筛选、分页以及编辑。EXT Designer是Sencha公司提供的一个可视化设计工具,它可以帮助开发者更加直观地构建EXT-JS应用程序,包括Grid组件。 ...
2. **列配置**:GRID的列可以通过配置对象定制,包括列宽、标题、对齐方式、是否可排序、可编辑等属性。还可以添加自定义的列渲染器来改变数据显示样式。 3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格...
Ext.grid.EditorGridPanel是Ext JS库中的一个组件,主要用于创建具有可编辑单元格的表格。这个组件在数据展示和编辑方面提供了丰富的功能,是构建数据密集型应用的理想选择。下面将详细阐述其特点、工作原理及如何...
extgrid 是一款jquery上的gird插件 界面风格采用了类似easyui extjs 界面风格样式 可通过css修改自己想要的样式 extgrid具有列大小 位置改变 排序 分组 分页 工具栏 扩展行 rowNumber 多选列 编辑列 行列锁 ajax...
EXT JS的Grid组件提供了丰富的功能,如分页、排序、过滤、编辑等,可以灵活地适应各种业务需求。以下是一些关于EXT JS Grid的重要知识点: 1. **创建Grid**: 首先,创建一个Grid需要定义基本配置,如数据源(store...
在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...
同时,这也体现了Ext JS框架的灵活性和可扩展性,开发者可以根据项目需求定制化Grid的每一部分,实现高度个性化的数据操作界面。在深入研究`Ext Grid CellEdit`的过程中,了解和掌握组件化开发思想、事件处理机制...
在Ext Grid中,你可以定义列(columns)来展示数据的不同属性,通过store来绑定数据源,以及使用各种插件和功能,如行选择、分组、自定义编辑等。在提供的"extdemo"压缩包中,可能包含了一个展示如何创建和配置Grid...
3. **转换为SheetJS可读格式**:将EXT Grid的数据转换为SheetJS理解的二维数组格式。每一行代表store中的一条记录,每列对应记录的一个字段。 4. **创建工作簿**:使用SheetJS创建一个新的工作簿,并添加工作表。...
2. **列配置**:EXTGRID允许自定义列,包括列宽、标题、对齐方式、可排序性等,可以展示不同类型的数据,如文本、数字、日期等。 3. **分页**:EXTGRID支持分页功能,用户可以轻松浏览大量数据,提高性能。 4. **...
要创建一个可编辑的TreeGrid,你需要配置`columns`来定义每列的显示和编辑规则,使用`Ext.grid.plugin.CellEditing`插件,并为每个需要编辑的列指定`editor`属性。同时,还需要确保树的数据源(`store`)能够处理...
本示例“Ext2.2-用XML做数据源,可编辑Grid的例子.rar”聚焦于如何利用Ext JS的Grid组件,并结合XML数据源来实现一个可编辑的数据网格。 在Web应用中,数据展示和编辑是常见的需求。Grid组件是Ext JS处理表格数据的...
EXT JS Grid组件是一个高度可配置的表格视图,用于显示大量数据。它支持分页、排序、过滤、编辑等功能,并且可以通过增减列、添加插件等方式进行自定义。 2. **双层表头(Nested Headers)**: 双层表头是EXT JS ...
- 说明:判断指定位置的单元格是否可编辑。 综上所述,`Ext.grid.GridPanel`提供了非常全面且强大的功能,使得开发者能够根据实际需求灵活定制表格的样式和交互。通过深入了解这些配置选项和方法,可以更高效地...
总结起来,Ext可编辑表格结合了丰富的UI组件和强大的数据管理能力,使得用户可以在界面上直接操作数据,大大提升了交互性和用户体验。理解并熟练运用这些技术,能帮助你构建出高效、功能完善的Web应用。
在Ext JS中,ComboBox通常用于显示一个可选的下拉列表,而Grid则用于展示大量数据并进行编辑和操作。ComboboxGrid将这两者融合,使得用户可以在输入框中输入关键字搜索,同时下拉展示匹配的网格数据,便于多维度筛选...
标题中的“用ext propertyGrid做的小例子”表明这个压缩包包含了一个使用EXTJS库的Property Grid组件的示例。EXTJS是一个流行的JavaScript框架,用于构建富客户端Web应用程序,而Property Grid是一个数据展示组件,...
GT-Grid与EXT-Grid都是用于构建高性能、可定制的表格视图的JavaScript库。GT-Grid通常以其高效的数据处理和强大的自定义功能受到赞誉,而EXT-Grid则以其丰富的内置功能和良好的用户体验而闻名。 首先,我们来看GT-...