跟我一起学extjs5(18--模块的新增、改动、删除操作)


        上节在Grid展示时做了一个金额单位能够手工选择的功能,假设你要增加其它功能。也仅仅要依照这个模式来操作即可了,比方说你想改变金额字段的颜色、小数位数、零值是否显示、货币符号、单位显示在标题栏或者跟在金额后面,凡是你能想到的须要手工设置的东西都能够加进来。 上面讲到的这些设置以后会加到程序里。在下载包里能够看到,就不做解说了。

        这一节来使模块能够具有新增、改动、删除的操作。

因为还没有和后台服务相联,因此数据是保存在本地localStorage中的,浏览器关闭这些数据并不会丢失。首先我们让Grid具有行内改动功能,双击单元格能够对其进行改动。在Grid.js中的initComponent函数中增加下面语句使Grid能够双击改动数据。clicksToEdit 假设设置成1,则会是单击改动。


				this.cellEditing = new Ext.grid.plugin.CellEditing({
clicksToEdit : 2
});
this.plugins = [this.cellEditing];

如上设置后。双击单元格改动界面例如以下:


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">    

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


        在Store的属性里增加:autoSync : true,这样改动完一个单元格后会自己主动保存数据。
        以下对新增button的事件加以改动,使其能够新增一个记录。将ModuleController.js中的addRecord函数改为以下:
			addRecord : function() {
var grid = this.getView().down('modulegrid');
var model = Ext.create(grid.getStore().model);
model.set('tf_id',0);
grid.getStore().insert(0, model);
}

以下来增加数据的删除。删除能够选择一条。也能够选择多条进行删除。GridToolbar.js中给删除button加上事件。

 {
text : '删除',
disabled : true,
glyph : 0xf014,
itemId : 'deletebutton',
handler : 'deleteRecords'
}
        删除button初始状态是disabled的,在选中了记录之后才会变成enable,须要在Grid中增加一个事件:
			listeners : {
selectionChange : 'selectionChange'
},

在ModuleController.js中增加事件响应函数:

			// 选中的记录发生变化过后的事件
selectionChange : function(model, selected, eOpts) { // 设置删除按钮的状态
this.getView().down('toolbar button#deletebutton')[selected.length > 0
? 'enable'
: 'disable'](); },

在ModuleController.js中增加删除事件的处理函数:

			// 删除一条或多条记录
deleteRecords : function(button) {
var grid = this.getView().down('modulegrid'), selection = grid
.getSelectionModel().getSelection(), message = '';
if (selection.length == 1) // 假设仅仅选择了一条
message = ' 『' + selection[0].getNameValue() + '』 吗?';
else { // 选择了多条记录
message = '<ol>';
Ext.Array.each(grid.getSelectionModel().getSelection(), function(
record) {
message += '<li>' + record.getNameValue() + '</li>';
});
message += '</ol>';
message = '下面 ' + selection.length + ' 条记录吗?' + message;
}
Ext.MessageBox.confirm('确定删除', '确定要删除 <strong>'
+ this.getView().getViewModel().get('tf_title')
+ '</strong> 中的' + message, function(btn) {
if (btn == 'yes') {
grid.getStore().remove(grid.getSelectionModel().getSelection());
grid.getStore().sync();
}
})
},

为了可以多选记录。须要给Grid加上一个属性 multiSelect :
true, 这样就能够按住Ctrl 和 shift 键来用鼠标进行多选记录的操作了。以下看看选择了一条记录和多条记录删除前的提示信息。

        删除一条的提示信息:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


        删除多条的提示信息:





跟我一起学extjs5(18--模块的新增、改动、删除操作)的更多相关文章

  1. 跟我一起学extjs5(19--模块记录的拖放删除、拖放复制新增)

    跟我一起学extjs5(19--模块记录的拖放删除.拖放复制新增)         网页其中的拖放(drag-drop)是比較有趣的操作,extjs5中非常好的封装了拖放的动作,也有各种类来支持,可是 ...

  2. 跟我一起学extjs5(11--自己定义模块的设计)

    跟我一起学extjs5(11--自己定义模块的设计)        从这一节開始我们来设计并完毕一个自己定义模块.我们先来确定一个独立的模块的所能定义的一些模块信息. 下面信息仅仅是我自己在开发过程中 ...

  3. 跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)

    跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)         上面设计好了一个模块的主界面,以下通过菜单命令的运行来把这个模块增加到主界面其中. 在MainModule. ...

  4. 跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])

    跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])         写了几个月,总算有点盼头了,最终要从后台取得数据了.后台的spring mvc 和 service 仅仅能简单的 ...

  5. 跟我一起学extjs5(42--单个模块的数据新增方式)

    跟我一起学extjs5(42--单个模块的数据新增方式)         前面的章节中已经增加了一个自己定义的模块,而且能够进行数据的新增.改动.删除的操作了,在这个基础上就能够大作文章了. 这一节来 ...

  6. 跟我一起学extjs5(22--模块Form的自己定义的设计)

    跟我一起学extjs5(22--模块Form的自己定义的设计)         前面几节完毕了模块Grid的自己定义,模块Form自己定义的过程和Grid的过程类似,可是要更复杂一些.先来设计一下要完 ...

  7. 跟我一起学extjs5(24--模块Form的自己定义的设计[2])

    跟我一起学extjs5(24--模块Form的自己定义的设计[2])         在本节中将要增加各种类型的字段,在增加字段的时候因为能够一行增加多个字段,因此层次结构又多了一层fieldcont ...

  8. 跟我一起学extjs5(16--各种Grid列的自己定义渲染)

    跟我一起学extjs5(16--各种Grid列的自己定义渲染)         Grid各列已经可以展示出来了.列的类型包含字符型,整型,浮点型,货币型,百分比型,日期型和布尔型,我自己定义了各种类型 ...

  9. 跟我一起学extjs5(08--自己定义菜单1)

    跟我一起学extjs5(08--自己定义菜单1) 顶部和底部区域已经作好,在顶部区域有一个菜单的button.这一节我们设计一个菜单的数据结构,使其能够展示出不相同式的菜单.因为准备搭建的是一个系统模 ...

随机推荐

  1. 2013年全球ERP市场格局(Gartner)

    Gartner于5月5日公布了全球ERP市场的分析报告,报告称全球ERP软件销售额2013年整体增长了3.8%(从2012年$244亿美元到2013年$258亿美元),全球前五位ERP厂商座次例如以下 ...

  2. 怎么修改placeholder字体的css样式

    修改palceholder内文字的css样式 ::-webkit-input-placeholder{ color: red; font-size: 20px; line-height: 50px; ...

  3. css-文字

    <!DOCTYPE html>CSS2-文字 <style>div{ /*文字*/ font-size:120px; /*文字大小*/ font-family:Arial,'方 ...

  4. Intellij Idea安装主题

    IDEA中jar包形式的主题比较常见.(顺便给大家推荐一个主题站:http://www.ideacolorthemes.org/themes/) 从主菜单中依次选择[File]>[Import ...

  5. javascript创建自定义对象和prototype

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 在android源码环境下写上层应用的一个初步解决方法

    在android源码环境下编写上层应用,一直以来我都觉得很麻烦.因为如果单纯将应用导入eclipse,那么framework层一些定制的API无法自动提示和补全,使用起来不太方便:如果将整个andro ...

  7. 剑指offier第三题

    package 剑指office; /* * 第三题二维数组查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维 ...

  8. layer 模版使用

    function doReply(id){ var url = "/Feedback/Feedback/reply"; var content = $("#reply_c ...

  9. NET Core开发-获取所有注入(DI)服务

    NET Core开发-获取所有注入(DI)服务 获取ASP.NET Core中所有注入(DI)服务,在ASP.NET Core中加入了Dependency Injection依赖注入. 我们在Cont ...

  10. C++----练习--整型赋值时的溢出

    1.如果所赋的值超出了类型的取值范围.那么只保留最低位 #include<iostream> int main() { ; //unsigned char c = 256; 有无符号都是一 ...