本文实例讲述了jQuery实现为table表格动态添加或删除tr功能。分享给大家供大家参考,具体如下:

HTML页面元素如下:

订单合同号
捆包号 品名 规格 材质 重量

业务需求是,从后台获取到订单合同下的明细信息,然后动态添加到上面的表格中,做法是:

1. 在jqgrid表格中为每一列添加一个“订单明细”的图标,如下所示:

jQuery(function($) {

var grid_selector = "#grid-table";

var pager_selector = "#grid-pager";

jQuery(grid_selector).jqGrid({

data: grid_data,

datatype: "local", //从服务器端返回的数据类型

height: 400, //表格高度,可以是数字,像素值或者百分比

/****列显示名称******/

colNames:['id', '订单合同号', '收货单位', '提货方式', '物资来源', '物资来源厂商名称', '订单总重量', '绑定合同号来源', '绑定合同号', '订单状态', '订单明细'],

/****常用到的属性:name 列显示的名称;index 传到服务器端用来排序用的列名称;width 列宽度;align 对齐方式;sortable 是否可以排序******/

colModel:[

{name:'id',index:'id', width:0, sorttype:"int", editable: true, hidden:true},

{name:'goodsOrder', index:'goodsOrder', width:60, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'goodsReceiveCompany', index:'goodsReceiveCompany', width:60, sortable:false, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'goodsDeliveryMode', index:'goodsDeliveryMode', width:60, sortable:false, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'goodsOrigin', index:'goodsOrigin', width:60, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'originName', index:'originName', width:60, sortable:false, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'contractWeight', index:'contractWeight', width:60, sortable:false, editable:true, editoptions:{size:"20",maxlength:"30"}, formatter: "number", formatoptions: {thousandsSeparator:",", defaulValue:"", decimalPlaces:3}},

{name:'purchaseContractOrigin', index:'purchaseContractOrigin', width:60, sortable:false, editable: true, editoptions:{size:"20",maxlength:"30"}},

{name:'purchaseContractOriginVal', index:'purchaseContractOriginVal', width:60, sortable:false, editable: true, editoptions:{size:"20",maxlength:"30"}},

{name:'contractStatus', index:'contractStatus', width:60, editable:true, editoptions:{size:"20",maxlength:"30"}},

{name:'myac222', index:'', width:120, fixed:true, sortable:false, resize:false, align:'center',

formatter: function (value, grid, rows, state) {

return "";

}

}

],

loadonce: true, //一次加载全部数据到客户端,由客户端进行排序。

sortable: true,

rownumbers: true, //添加左侧行号

viewrecords: true, //定义是否要显示总记录数

rowNum: 10, //在grid上显示记录条数,这个参数是要被传递到后台

rowList: [10,20,30], //一个下拉选择框,用来改变显示记录数,当选择时会覆盖rowNum参数传递到后台

pager: pager_selector, //定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置

altRows: true, //设置为交替行表格,默认为false

//toppager: true,

multiselect: true, //定义是否可以多选

//multikey: "ctrlKey", //只有在multiselect设置为ture时起作用,定义使用那个key来做多选。shiftKey,altKey,ctrlKey

multiboxonly: true, //只有当multiselect = true.起作用,当multiboxonly 为ture时只有选择checkbox才会起作用

gridComplete:function(){ //在此事件中循环为每一行添加修改和删除链接

},

loadComplete : function() {

$(grid_selector).closest(".ui-jqgrid-bdiv").css({ 'overflow-y' : 'scroll' });

var table = this;

setTimeout(function(){

updatePagerIcons(table);

enableTooltips(table);

}, 0);

},

editurl: "???", //定义对form编辑时的url

caption: "销售订单列表", //表格名称

autowidth: true //如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth

});

上面添加“订单明细”的图标时,为其绑定了onclick事件,此事件将传递每一行的id给绑定函数。

2. 在绑定函数中首先获取onclick传递过来的行id,通过此行id可访问该行的每个字段的数据。然后在此绑定函数中通过ajax从后台获取到“订单明细”的具体数据,再通过append方法将获取到的数据动态添加到table表格中。最后,将此table表格所在的div以dialog的形式弹出来展示给用户。如下:

/*********合同明细弹出框************/

function contractDetail(id){

$("#contractDetailTab tr:gt(0)").empty();

var rowData = $("#grid-table").jqGrid('getRowData',id);

var purchaseContractOrder = rowData.purchaseContractOriginVal;

$("#orderId").html(rowData.goodsOrder);

//请求合同明细数据

$.ajax({

async:false,

cache:true,

type: "GET",

url: "goods_findPagePurchaseOrderDetail.do?purchaseContractOrder="+purchaseContractOrder, //获取json数据

success: function(result){

var result = eval('('+ result +')');

if(result.root != undefined && result.root.length > 0){

var resultContent = result.root;

for (var i = 0; i < resultContent.length; i++) {

$("#contractDetailTab").append("

捆包号品名规格材质重量"+resultContent[0][0]+""+resultContent[0][1]+""+resultContent[0][2]+""+resultContent[0][3]+""+resultContent[0][5]+"");

}

$("#contractDetailDiv").dialog({

autoOpen:true,

height:300,

width:450,

resizable:false,

modal:true,

});

} else {

alert("该订单合同下无明细信息!");

}

},

error: function() {

alert("获取合同明细失败")

}

});

}

这里需要注意的是,每次动态添加新的明细之前,需要将上一次的明细信息清空,即使用empty方法将上一次动态添加的tr先删除掉,然后再动态添加新的明细信息。

动态删除除第一行以外的其他tr:

$("#contractDetailTab tr:gt(0)").empty();

$("#contractDetailTab tr").not(':eq(0)').empty();

动态添加tr:

$("#contractDetailTab").append("

捆包号品名规格材质重量"+resultContent[0][0]+""+resultContent[0][1]+""+resultContent[0][2]+""+resultContent[0][3]+""+resultContent[0][5]+"");

动态删除除第一行和最后一行以外的其他tr:

$("#contractDetailTab tr:not(:first):not(:last)").remove();

希望本文所述对大家jQuery程序设计有所帮助。

html表格中添加修改和删除链接,jQuery实现为table表格动态添加或删除tr功能示例...相关推荐

  1. html中tr中加判断换行符,深入解析HTML的table表格标签与相关的换行问题

    何为table:table者Html表格也,数据之载体. 下面是一个比较标准的table代码写法: XML/HTML Code复制内容到剪贴板 MonthDateAUG18 简单的HTML表格由tab ...

  2. html页面forEach用法,jQuery教程之使用模板动态添加html元素,相当于jstl里的foreach...

    本篇文章探讨了jQuery教程之使用模板动态添加html元素,相当于jstl里的foreach,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 1.开发的时候有时候要循 ...

  3. 表格中复制后出现空格_软件应用在Excel表格中怎样批量删除空格?

    在日常办公中对于Excel的使用有没有全部掌握呢?怎样快速整理表格中的数据呢?这些都是职场必备技能,了解更多的Excel知识可以让你在数据管理,表格管理中游刃有余.下面为大家分享一些经常使用的Exce ...

  4. speedoffice文档word表格中如何修改文字方向

    平时工作我们经常会用到word,那么word里面插入的表格中的文字如何修改方向呢,今天和大家一起用我常用的speedoffice学习下. 1.首先,我们打开带有表格的Word文档,并选中需要进行设置的 ...

  5. (前端开发)表格中的行全选、全不选、反选以及数据行背景色变换的示例代码

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. Python处理2个表格。从源表格中筛选符合条件的数据,写入到dst表格中

    需求介绍:两个表格:srcData表格和dstData表格.将src表格中同一时刻的数据写入dst表格对应的行中. #!/usr/bin/env python # -*- coding: utf-8 ...

  7. 在linux中如何修改保存gun文件_Linux下文件重命名、创建、删除、修改及保存文件...

    一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...

  8. 利用服务器修改服务器数据,用Jquery实现可编辑表格并用AJAX提交到服务器修改数据...

    下面是js Code: $(function() { // 相当于在页面中的body标签加上onload事件 $(".caname").click(function() { // ...

  9. 使用jQuery加DIV实现可以动态添加的金字塔结构

    原本是一个项目中用到的,用来展示会员结构,觉得有点意思就发出来晾晾 ,废话不多说了,上图 开始的样子: 添加到三层的样子: 添加到五层的样子: 代码就不详细解释了,请直接下载自己看. 点一次按钮就可以 ...

最新文章

  1. linux 指定库名 登录mysql_linux下对应mysql数据库的常用操作
  2. x64dbg 搜索多条指令 ( find sequence of commands )
  3. 获取用户精准地理位置信息(百度地图)
  4. S2SH框架入门之使用struts2
  5. Spring Security源码解析(二)——引入
  6. C语言编辑飘扬的红旗代码,C语言 飘动的红旗(要有旗杆)
  7. 【4】求最大奇数公约数
  8. python源码中的学习笔记_第8章_函数
  9. 前端向后台发送请求有几种方式?
  10. 终于忙完了,要开启代码生涯了
  11. 简单的达梦数据库使用DISTINCT去重
  12. linux socket版本 can,linux socket can程序cantool
  13. lammps数据后处理:Python Ovito 统计键长分布
  14. 微带天线馈电方法 [搬运]
  15. python制作词云图
  16. lol7月9日服务器维护,英雄联盟7月9日更新维护到几点结束_lol7月9日10.14版本更新维护结束时间介绍_咖绿茵手游站...
  17. 2022年山东省安全员C证考试资料及山东省安全员C证考试试题
  18. 参加python全栈开发培训需要多少钱?
  19. 【Task02】Numpy组队学习—随机抽样
  20. Python爬虫之从网站图片中抓取文字

热门文章

  1. 电脑上的科学计算机怎么用,电脑上怎么快速打开计算器
  2. 在linux上配置oracle9,ORACLE_9安装与删除( linux下)
  3. java一维数组插入元素_Java 数组 之 一维数组 追加 元素
  4. php 抽象类 继承,PHP 抽象类继承抽象类时的注意点
  5. java -jar 和 -cp详解
  6. php屏幕抓取,PHP抓屏函数实现屏幕快照代码分享
  7. 仍然报错_详解oracle经典报错:ORA-04030排错思路和解决方法
  8. 从 Windows 切换到 Mac,不能错过这9条Tips
  9. 每日一皮:宿舍阿姨眼中的单身狗...
  10. 每日一皮:完美解释 UDP 为什么会丢包...