编辑 Ext 表格(二)——— 编辑表格元素



<!-- 数据定义 -->
<script type="text/javascript">
var data; // 表格数据
var cols; // 表格列 var gridStore = Ext.create('Ext.data.Store', {
fields: ['Name']
}); </script> <!-- 事件定义 -->
<script type="text/javascript">
// 初始化整个页面
function onInit() {
onLoadData(); onInitVar();
onInitColumn();
};
// 请求加载表格数据
function onLoadData() {
data = [{ 'Name': '老狼' }, { 'Name': '小羊' }];
gridStore.loadData(data);
}; // 初始化页面的变量参数
function onInitVar() {
cols = [
{
xtype: 'rownumberer',
text: '序号',
align: 'center',
minWidth: 50,
maxWidth: 50,
},
{
text: '姓名',
dataIndex: 'Name',
minWidth: 85,
maxWidth: 85,
sortable: false,
menuDisabled: true,
editor: {
xtype: 'textfield',
enableKeyEvents: false,
}
}
];
};
// 初始化列
function onInitColumn() {
gridTable.reconfigure(gridStore, cols);
}; // 添加行
function onAddRow() {
gridStore.add({});
};
// 删除行
function onDelRow() {
gridStore.removeAt(gridStore.count() - 1);
};
// 添加列
function onAddColumn() {
cols.push({
text: '列',
dataIndex: 'col',
width: 120,
sortable: false,
menuDisabled: true,
editor: {
xtype: 'textfield',
enableKeyEvents: false,
}
}); gridTable.reconfigure(gridStore, cols);
};
// 删除列
function onDelColumn() {
cols.pop()
gridTable.reconfigure(gridStore, cols);
}; // 保存
function onSave() { console.log(gridTable);
console.log(gridStore.data);
}; </script> <!-- 面板定义 -->
<script type="text/javascript">
var toolbar = Ext.create('Ext.form.Panel', {
id: 'tool-bar',
region: 'north',
bbar: [
{
xtype: 'button',
text: '添加行',
handler: onAddRow
},
{
xtype: 'button',
text: '删除行',
handler: onDelRow
},
{
xtype: 'button',
text: '添加列',
handler: onAddColumn
},
{
xtype: 'button',
text: '删除列',
handler: onDelColumn
},
{
xtype: 'button',
text: '保存',
handler: onSave
}
]
}); //表格右键菜单
var contextmenu = new Ext.menu.Menu({
id: 'context-menu',
items: [{
id: 'context-menu-first',
rowIdx: 0,
colIdx: 0,
handler: function (m) {
if ("设置" == m.text) {
Ext.MessageBox.alert("提示", "设置成功");
}
}
}]
});
var gridTable = Ext.create('Ext.grid.Panel', {
id: 'gridTable',
region: 'center',
layout: 'fit',
columns: cols,
store: gridStore,
autoScroll: true,
selModel: { // 光标显示的是单元格模式
selType: 'cellmodel'
},
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1 //设置单击单元格编辑
})
],
listeners: {
'edit': function (editor, e) {
e.record.commit();
},
'itemcontextmenu': function (view, record, item, index, e) {
// 禁用系统默认右键菜单
e.preventDefault(); contextmenu.items.items[0].setText("设置"); contextmenu.showAt(e.getXY());
}
}, });
</script> <!-- 脚本入口 -->
<script type="text/javascript">
Ext.onReady(function () {
Ext.create('Ext.Viewport', {
id: 'iframe',
layout: 'border',
items: [
toolbar,
gridTable,
]
}); onInit();
});
</script>
编辑 Ext 表格(二)——— 编辑表格元素的更多相关文章
- 编辑 Ext 表格(一)——— 动态添加删除行列
一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行 gridS ...
- FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架
这是一篇很长的文章,在开始正文之前,请允许我代表目前排名前 20 中唯一的 .Net 开源软件 FineUI 拉下选票: 投票地址: https://code.csdn.net/2013OSSurve ...
- Linqpad使用(调试Linq、结合linq调试业务场景、表格内编辑数据)
linqpad是一款linq语句调试工具,功能如下: 1.直接执行linq语句并查看生成的原生sql语句 2.可结合linq+C#代码进行业务场景调试 3.表格内直接新增.修改.删除数据 4.直接 ...
- 基于layui,Jquery 表格动态编辑 设置 编辑值为 int 或者 double 类型及默认值
首先先推荐大家在看这篇笔记时,阅读过我写的这篇 Layui表格编辑[不依赖Layui的动态table加载] 阅读过上面那篇笔记之后呢,才能更好的理解我现在所要说的这个东西 接下来废话不多说,上代码. ...
- Swift - 给表格添加编辑功能(删除,插入)
1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...
- swift - 表格的编辑功能(添加、删除)
表格(tableview)的确是一个很好用的控件,现在来实现一个编辑功能的实现,包含添加和删除,删除包括长按删除和左滑删除 效果图如下: 具体代码如下: 1.创建表格(这个表格有2个区,有区头和区尾) ...
- EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他
原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! 原创 : EasyUI datagrid 明细表格中编辑框 事件绑 ...
- Django前端HTML通过JS实现表格可编辑,动态添加行,回车完成新建文件夹
功能描述: 点击“新建文件夹”按钮,在table的末尾增加一行:单击页面的新增行,使单元格td变成可编辑状态:输入内容后,当单元格失去焦点时,保存输入的内容:回车后通过AJAX提交后台完成新建文件夹. ...
- ElementUI表格行编辑单元格编辑支持(输入框,选择框)Demo
嗯,需要做成这个样子,所以网上查了些资料.整理了下.提供几个一个思路.不足之处请小伙伴指出来. 普通版的table可编辑内嵌select选择框,输出框,编辑删除添加等 <!DOCTYPE ht ...
随机推荐
- Spring+Quartz实现定时任务
MessageMgr.java package com.uyao.bid.common.message; import com.pominfo.framework.exception.PomInfoE ...
- Androidstudio安装AVD出现no system images installed for this target解决方案
解决方案:
- 更好的pip工作流
转自:http://codingpy.com/article/a-better-pip-workflow-recommended-by-kenneth/ 现在大家开发Python应用时,在代码库的根目 ...
- [转]在html中控制自动换行
其实只要在表格控制中添加一句 <td style="word-break:break-all">就搞定了. 其中可能对英文换行可能会分开一个单词问题:解决如下: 语法: ...
- 关于GIL
1同一时刻只有一个线程通过一个线程到解释器运行 2在多核上会有些不一样 不仅仅会降低python的效率 并且还会影响到整个机器系统的效率 python的gil是每100条cpu指令开始check 如果 ...
- c#线程间操作UI-Invoke和BeginInvoke
利用Invoke和或BeginInvoke实现线程间操作UI的简单例子. /* 窗体包含一个button和一个richtextbox控件 * 注:必须在子线程中执行Invoke和或BeginInvok ...
- JS中匿名函数$(function(){ })和(function(){})()的区别
“$(function(){ });” Jquery语法的匿名函数,用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在: (通过这样就可以在页面加载完成时通过ajax再异步加载一些数据) “ ...
- linux 下载百度盘,迅雷离线文件,解压乱码文件的方法。
首先,利用bypy的自动打包功能,将百度盘里的文件自动存放至app/bypy中,这样文件就是打包形式. 再利用 axel -n 10 "下载地址",将文件下载至本地. 下载地址获取 ...
- 69个经典Spring面试题和答案
Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过PO ...
- NOIp2016 十连测 round1
Claris大爷出的一套模拟题.问别人要到了一份题,加深了自己NOIp要滚粗的感觉. Matser zzDP题,我只能说我第一遍写的时候还写崩了QAQ. //master //by Cydiater ...