一、动态增删行
在 ext 表格中,动态添加行主要和表格绑定的 store 有关,
通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除。
 
(1) 动态添加表格的行 
gridStore.add({});
 
(2) 动态删除表格的行 
gridStore.removeAt(gridStore.count() - 1);
 
二、动态增删列
在 ext 表格中,动态添加列主要通过修改表格绑定的 column 元素,
通过对 column 元素集进行添加或删除,然后重新渲染表格,就能实现表格行的动态添加删除。
(1)动态添加表格的列
定义表格:
var gridTable = Ext.create('Ext.grid.Panel', {
    id: 'gridTable',
    region: 'center',
    layout: 'fit',
    columns: cols,
    store: gridStore,
    autoScroll: true,
});
 
添加列:
cols.push({  
    text: '列',
    dataIndex: 'col',
    width: 120,
    sortable: false,
    menuDisabled: true,
});
gridTable.reconfigure(gridStore, cols);  // 调用该方法重新配置的时候,会重新载入 store
 
(2)动态删除表格的列
cols.pop();
gridTable.reconfigure(gridStore, cols);
 
下面附上完整的 js 代码:
  1. <!-- 数据定义 -->
  2. <script type="text/javascript">
  3. var data; // 表格数据
  4. var cols; // 表格列
  5.  
  6. var gridStore = Ext.create('Ext.data.Store', {
  7. fields: ['Name']
  8. });
  9.  
  10. </script>
  11.  
  12. <!-- 事件定义 -->
  13. <script type="text/javascript">
  14. // 初始化整个页面
  15. function onInit() {
  16. onLoadData();
  17.  
  18. onInitVar();
  19. onInitColumn();
  20. };
  21. // 请求加载表格数据
  22. function onLoadData() {
  23. data = [{ 'Name': '老狼' }, { 'Name': '小羊' }];
  24. gridStore.loadData(data);
  25. };
  26.  
  27. // 初始化页面的变量参数
  28. function onInitVar() {
  29. cols = [
  30. {
  31. xtype: 'rownumberer',
  32. text: '序号',
  33. align: 'center',
  34. minWidth: 50,
  35. maxWidth: 50,
  36. },
  37. {
  38. text: '姓名',
  39. dataIndex: 'Name',
  40. minWidth: 85,
  41. maxWidth: 85,
  42. sortable: false,
  43. menuDisabled: true,
  44. }
  45. ];
  46. };
  47. // 初始化列
  48. function onInitColumn() {
  49. gridTable.reconfigure(gridStore, cols);
  50. };
  51.  
  52. // 添加行
  53. function onAddRow() {
  54. gridStore.add({});
  55. };
  56.  
  57. // 删除行
  58. function onDelRow() {
  59. gridStore.removeAt(gridStore.count() - 1);
  60. };
  61.  
  62. // 添加列
  63. function onAddColumn() {
  64. cols.push({
  65. text: '列',
  66. dataIndex: 'col',
  67. width: 120,
  68. sortable: false,
  69. menuDisabled: true,
  70. });
  71.  
  72. gridTable.reconfigure(gridStore, cols);
  73. };
  74.  
  75. // 删除列
  76. function onDelColumn() {
  77. cols.pop()
  78. gridTable.reconfigure(gridStore, cols);
  79. };
  80.  
  81. </script>
  82.  
  83. <!-- 面板定义 -->
  84. <script type="text/javascript">
  85. var toolbar = Ext.create('Ext.form.Panel', {
  86. id: 'tool-bar',
  87. region: 'north',
  88. bbar: [
  89. {
  90. xtype: 'button',
  91. text: '添加行',
  92. handler: onAddRow
  93. },
  94. {
  95. xtype: 'button',
  96. text: '删除行',
  97. handler: onDelRow
  98. },
  99. {
  100. xtype: 'button',
  101. text: '添加列',
  102. handler: onAddColumn
  103. },
  104. {
  105. xtype: 'button',
  106. text: '删除列',
  107. handler: onDelColumn
  108. }
  109. ]
  110. });
  111.  
  112. var gridTable = Ext.create('Ext.grid.Panel', {
  113. id: 'gridTable',
  114. region: 'center',
  115. layout: 'fit',
  116. columns: cols,
  117. store: gridStore,
  118. autoScroll: true,
  119.  
  120. });
  121. </script>
  122.  
  123. <!-- 脚本入口 -->
  124. <script type="text/javascript">
  125. Ext.onReady(function () {
  126. Ext.create('Ext.Viewport', {
  127. id: 'iframe',
  128. layout: 'border',
  129. items: [
  130. toolbar,
  131. gridTable,
  132. ]
  133. });
  134.  
  135. onInit();
  136. });
  137. </script>

下一篇将介绍如何编辑Ext表格

编辑 Ext 表格(一)——— 动态添加删除行列的更多相关文章

  1. WPF下的Richtextbox中实现表格合并,添加删除行列等功能

    .Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...

  2. 用Javascript动态添加删除HTML元素实例 (转载)

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

  3. js实现网页收藏功能,动态添加删除网址

    <html> <head> <title> 动态添加删除网址 </title> <meta charset="utf-8"&g ...

  4. jquery动态添加删除div--事件绑定,对象克隆

    我想做一个可以动态添加删除div的功能.中间遇到一个问题,最后在manong123.com开发文摘 版主的热心帮助下解答了(答案在最后) 使用到的jquery方法和思想就是:事件的绑定和销毁(unbi ...

  5. jQuery动态添加删除CSS样式

    jQuery框架提供了两个CSS样式操作方法,一个是追加样式addClass,一个是移除样式removeClass,下面通过一个小例子讲解用法. jQuery动态追加移除CSS样式 <!DOCT ...

  6. JS动态添加删除html

    本功能要求是页面传一个List 集合给后台而且页面可以动态添加删除html代码需求如下: 下面是jsp页面代码 <%@ page language="java" pageEn ...

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

    一.编辑单元格 Ext 中通过配置表格的属性 plugins 来设置表格是否可编辑, 表格的配置具体如下: var gridTable = Ext.create('Ext.grid.Panel', { ...

  8. jquery动态添加/删除 tr/td

    <head runat="server"> <title></title> <!--easyui --> <link rel= ...

  9. Layui表格之动态添加数据(表格多选解决方案)

    前言: Layui已经给出了多选记录的解决方案,是在每条数据的前面加上CheckBox,每次选择都有监听.效果是这样: 实现监听的代码如下,这是一种解决选择多条数据的方案: table.on('edi ...

随机推荐

  1. 动态获取div的高度 随着窗口变化而变化

    // 1.jq法 <script> var winHeight = $(window).height(); $("#show").css("height&qu ...

  2. js精确加减乘除

    //加法函数function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1 ...

  3. 线段树 poj 3667

    1-n线段 m个操作 1  a 是否可找到连续a个空位子 有输出最左边(然后使这一段被占)没有0 2 a ,b a~b区间变成未使用 #include<stdio.h> #include& ...

  4. bzoj1588

    splay #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ...

  5. Xshell远程管理Linux

    Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的安全连接以及它创新 ...

  6. Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压

    zip格式 压缩: zip -r [目标文件名].zip [原文件/目录名] 解压: unzip [原文件名].zip 注:-r参数代表递归 tar格式(该格式仅仅打包,不压缩) 打包:tar -cv ...

  7. 求1...n中因子最多的数

    Problem 求[1..N]中素因子数最多且最小的数n,N充分大. Solution 将任意自然数n (n>2) 分解 n=p1^k1 * p2^k2 * p3^k3 * ... * Pm^k ...

  8. 配置maven

    http://www.cnblogs.com/liunanjava/archive/2015/11/05/4936037.html

  9. php工厂方法

    <?php interface db{ function conn(); } interface Factory{ function createDB(); } class dbmysql im ...

  10. 四、Shell输入、输出功能和字符颜色设置

    一.Shell输入功能 1.键盘输入   方式一: [root@Salve four]# cat test.sh #!/bin/bash #-e 参数可以解析语句中的转义字符 echo -e &quo ...