`
susam
  • 浏览: 104970 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Datatables 行数据删除、行上升、行下降功能演示

阅读更多

Datatables 是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

 

官方网站:http://www.datatables.net

 

最近在研究Datatables 的使用,其中包括行删除,行编辑,行上升,行下降。Google了一把,没有发现太多有用的资料,索性自己写一个简单的Demo,为了记录,也为了方便DataTables 的粉丝。

 

 首先上HTML 结构(其中引入了jquery, Boostrap 和 Font-Awesome 图标): 

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
	<meta name="viewport" content="width=device-width,initial-scale=1">

	<title>DataTables Demo - Row up and down</title>

	<link rel="stylesheet" type="text/css" href="bootstrap-3.3.2/css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="font-awesome-4.3.0/css/font-awesome.min.css">
	<link rel="stylesheet" type="text/css" href="DataTables-1.10.5/css/jquery.dataTables.css">

	<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
	<script type="text/javascript" src="bootstrap-3.3.2/js/bootstrap.min.js"></script>
	<script type="text/javascript" src="DataTables-1.10.5/js/jquery.dataTables.min.js"></script>
	<script type="text/javascript" src="demo.js"></script>

</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col-md-12">
				<table id="demo" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
					<thead>
						<tr>
							<th>姓名</th>
							<th>职位</th>
							<th>办公室</th>
							<th>薪水</th>
							<th>操作</th>
						</tr>
					</thead>
					<tbody>
						<tr>
							<td>张三</td>
							<td>System Architect</td>
							<td>Edinburgh</td>
							<td>$320,800</td>
							<td></td>
						</tr>
						<tr>
							<td>李四</td>
							<td>Accountant</td>
							<td>Tokyo</td>
							<td>$170,750</td>
							<td></td>
						</tr>
						<tr>
							<td>王五</td>
							<td>Junior Technical Author</td>
							<td>San Francisco</td>
							<td>$86,000</td>
							<td></td>
						</tr>
						<tr>
							<td>赵六</td>
							<td>Senior Javascript Developer</td>
							<td>Edinburgh</td>
							<td>$433,060</td>
							<td></td>
						</tr>
						<tr>
							<td>小明</td>
							<td>Accountant</td>
							<td>Tokyo</td>
							<td>$162,700</td>
							<td></td>
						</tr>
						<tr>
							<td>小丽</td>
							<td>Integration Specialist</td>
							<td>New York</td>
							<td>$372,000</td>
							<td></td>
						</tr>
						<tr>
							<td>小春春</td>
							<td>Sales Assistant</td>
							<td>San Francisco</td>
							<td>$137,500</td>
							<td></td>
						</tr>

					</tbody>
				</table>
			</div>
		</div>
	</div>
</body>
</html>

 

再就是JS 文件的写法:

$(document).ready(function() {

	$('#demo').DataTable({
		"paging": false,
		"ordering": false,
		"info": false,
		"searching": false,
		"columnDefs": [{
			// 定义操作列
			"targets": 4,
			"data": null,
			"render": function(data, type, row) {
				var html = '<a href="javascript:void(0);" class="delete btn btn-default btn-xs"><i class="fa fa-times"></i> 删除</a>'
				html += ' <a href="javascript:void(0);" class="up btn btn-default btn-xs"><i class="fa fa-arrow-up"></i> 上升</a>'
				html += ' <a href="javascript:void(0);" class="down btn btn-default btn-xs"><i class="fa fa-arrow-down"></i> 下降</a>'
				return html;
			}
		}],
		language: {
			"processing": "处理中...",
			"lengthMenu": "显示 _MENU_ 项结果",
			"zeroRecords": "没有匹配结果",
			"info": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
			"infoEmpty": "显示第 0 至 0 项结果,共 0 项",
			"infoFiltered": "(由 _MAX_ 项结果过滤)",
			"infoPostFix": "",
			"search": "搜索:",
			"url": "",
			"emptyTable": "表中数据为空",
			"loadingRecords": "载入中...",
			"infoThousands": ",",
			"paginate": {
				"first": "首页",
				"previous": "上页",
				"next": "下页",
				"last": "末页"
			},
			"aria": {
				"sortAscending": ": 以升序排列此列",
				"sortDescending": ": 以降序排列此列"
			}
		}
	});

	// 初始化刪除按钮
	$('#demo tbody').on('click', 'a.delete', function(e) {
		e.preventDefault();

		if (confirm("确定要删除该属性?")) {
			var table = $('#demo').DataTable();
			table.row($(this).parents('tr')).remove().draw();
		}

	});

	// 初始化上升按钮
	$('#demo tbody').on('click', 'a.up', function(e) {
		e.preventDefault();
		var table = $('#demo').DataTable();
		var index = table.row($(this).parents('tr')).index();
		if ((index - 1) >= 0) {
			var data = table.data();
			table.clear();
			data.splice((index - 1), 0, data.splice(index, 1)[0]);
			table.rows.add(data).draw();
		} else {
			alert("亲,已经到顶了");
		}

	});

	// 初始化下降按钮
	$('#demo tbody').on('click', 'a.down', function(e) {
		e.preventDefault();

		var table = $('#demo').DataTable();
		var index = table.row($(this).parents('tr')).index();
		var max = table.rows().data().length;
		if ((index + 1) < max) {
			var data = table.data();
			table.clear();
			data.splice((index + 1), 0, data.splice(index, 1)[0]);
			table.rows.add(data).draw();
		} else {
			alert("亲,已经到底了");
		}
	});
});

 

最后来一张效果图片:

 

 DataTables Demo

 

  • 大小: 82.2 KB
分享到:
评论
1 楼 wyb01 2018-01-10  
这种方法翻页是有问题的。

相关推荐

    DataTables(二) —— 行分组信息展开与折叠的功能实现

    在本文中,我们将深入探讨如何在DataTables中实现行分组信息的展开与折叠功能。DataTables是一款强大的JavaScript库,用于增强HTML表格的功能,提供排序、过滤、分页等多种高级特性。行分组功能允许用户将相关的数据...

    dataTables动态合并行

    jquery.datatables,异步请求后台数据时,调用api动态合并行。

    Datatables使用Ajax方式读取数据

    数据应包含列名和行数据,如: ```json { "data": [ ["Name", "Position", "Office", "Extn."], ["Airi Satou", "Accountant", "Tokyo", "5407"], ... ] } ``` 3. **服务器端处理**:如果使用"serverSide...

    datatables

    - **分页**:Datatables可以自动处理大量数据,通过分页功能将数据分块显示,提高页面加载速度。 - **数据加载**:支持服务器端处理和客户端处理两种模式,可根据数据量选择合适的加载方式。 - **自定义列**:...

    表格 demo datatables 回调

    总结来说,"表格 demo datatables 回调"是一个演示如何利用Datatables和Bootstrap创建交互式表格的实例,重点在于Datatables的回调功能以及与Bootstrap的协同使用。通过深入理解这两个工具,开发者可以构建出更高效...

    DataTables很好用的数据表格工具

    总之,DataTables是Web开发中一个高效且功能强大的数据展示工具,无论是在简单的数据展示还是复杂的交互场景下,都能提供优秀的解决方案。其易用性和灵活性使其成为Java、C++和C#程序员的首选数据表格组件。

    Datatables实现多选框与AJAX返回数据 JAVA版

    在本项目中,“Datatables实现多选框与AJAX返回数据 JAVA版”是针对Java开发者的,它涉及到使用Datatables与Spring MVC框架结合,通过AJAX技术动态加载并处理服务器端的数据,同时实现表格内的多选框功能,以提升...

    datatables刷新插件fnReloadAjax

    本资源提供的插件`fnReloadAjax`是针对`DataTables`的一个增强功能,它使得在不刷新整个页面的情况下,能够重新加载表格中的数据,这对于实时更新或者异步获取数据的场景尤为重要。 `DataTables`本身支持Ajax数据源...

    dataTables导出功能

    总结起来,"dataTables导出功能"是DataTables库的一个强大特性,通过集成Buttons插件和相关的第三方库,使得用户能够方便地将表格数据导出为CSV、PDF和Excel等格式。这在数据分析、报告生成以及数据交换等场景中非常...

    JQuery DataTables示例,包含分页、拖拽、导出

    3. **导出**:DataTables 支持导出数据为CSV, Excel, PDF 或其他格式,方便用户进一步分析或保存数据。这个示例包含了导出功能,意味着用户可以轻松地将表格数据导出至所需的格式。 4. **Struts2框架**:项目基于...

    jquery DataTables-1.9.4

    2. **API与编程接口**:DataTables提供了丰富的JavaScript API,允许开发者对表格进行精细控制,如添加、删除、修改表格行,以及在运行时改变表格的配置。这些API使开发人员能够响应用户操作,实现动态数据更新。 3...

    datatables案例

    Datatables 是一款强大的 jQuery 插件,用于将 HTML 表格转化为功能丰富的数据展示平台,提供了排序、搜索、分页等功能。在这个“datatables案例”中,网友付裕分享了一个他在 Datatables 中文网第一期交流学习活动...

    Laravel开发-datatables

    Datatables是一款强大的jQuery插件,它能够帮助开发者实现数据的动态展示、排序、过滤和分页,极大地提高了用户体验。在Laravel中集成datatables,可以将后端的复杂逻辑与前端的交互体验完美结合。 首先,我们要...

    jquery-dataTables简单实例

    这个简单的实例包含了8个基本功能的演示,旨在帮助初学者快速上手jQuery DataTables。通过这些基础,你可以进一步探索更多高级特性,如服务器端处理、自定义列渲染和扩展插件等。在实际工作中,根据需求灵活运用这些...

    DataTables-1.9.4

    DataTables 是一个基于 jQuery 的强大前端数据展示插件,版本号 1.9.4 提供了高效且灵活的表格管理功能。这个插件的主要特点是它的重用性和易修改性,使得开发者能够快速构建功能丰富的数据展示界面,同时保持较高的...

    datatables最简单的模板

    9. **自定义事件和扩展**:Datatables允许添加自定义事件处理函数,以及使用众多的插件和扩展来增强功能,如按钮、固定列、导出数据等。 10. **模板应用**:"我的模板"可能是包含上述配置的一个实际应用示例,可以...

    datatables1.10.15示例代码

    **数据表(DataTables)1.10.15版本示例代码详解** DataTables是一款强大的JavaScript库,用于...通过不断学习和实践,开发者能够充分利用DataTables 1.10.15的强大功能,为用户带来交互性强、功能丰富的数据展示体验。

Global site tag (gtag.js) - Google Analytics